Radeon HD
Threads by month
- ----- 2024 -----
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2000 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1999 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1998 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1997 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1996 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1995 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1994 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1993 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1992 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1991 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1990 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1989 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1988 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1987 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1986 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1985 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1984 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1983 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1982 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1981 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1980 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1979 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1978 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1977 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1976 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1975 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1974 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1973 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1972 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1971 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1970 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1969 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1968 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1967 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1966 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1965 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1964 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1963 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1962 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1961 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1960 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1959 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1958 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1957 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1956 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1955 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1954 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1953 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1952 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1951 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1950 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1949 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1948 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1947 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1946 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1945 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1944 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1943 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1942 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1941 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1940 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1939 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1938 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1937 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1936 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1935 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1934 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1933 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1932 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1931 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1930 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1929 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1928 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1927 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1926 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1925 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1924 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1923 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1922 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1921 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1920 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1919 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1918 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1917 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1916 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1915 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1914 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1913 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1912 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1911 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1910 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1909 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1908 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1907 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1906 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1905 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1904 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1903 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1902 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1901 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1900 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 1899 -----
- December
May 2008
- 49 participants
- 109 discussions
29 May '08
Hi,
included is my next version of the HDMI patch, wich also enables audio
support.
Changes:
1. Audio- and VideoInfoFrame are calculated correctly now. Ok most of
the bits are set to 0 (refer to stream header), but setting to RGB or
YCC in the VideoInfoFrame still works fine.
2. The patch now limits its changes to the RV630 chipset (the only one i
know it works correctly with). Feel free to change this limit to
something less restrictive and make some test.
3. The Audio and HDMI engine is now turned on or off with two config
options. Put somthing like
Option "Audio" "true"
Option "HDMI" "both" # or none/tmdsa/tmdsb
in your xorg.conf if you want to turn it on (default if off).
If you ask yourself what's the difference between audio and HDMI part of
the regs -> there is only 1 audio engine, but 2 HDMI engines (one for
each TMDS output).
Thinks that i didn't got working:
1. The info if a connected device is HDMI and/or Audio capable is
encoded in the "Enhanced Extended display identification data" (E-EDID,
i really think one of the worst things mankind ever invented are
marketing names). This E-EDID information is only readable when you use
enhanced DDC wich use a different I2C command to read more than 128
bytes compared to normal DDC. Since E-DDC is not implemented (AFAIK) in
rhd_i2c.c, i don't have any clue how to get this information.
2. I think "General Control Packet", "Audio Clock Regeneration" and
"Gamut Metadata" is somewhere inside the unknown HDMI registers, but i
also don't have any idea where to start searching for this.
I should also note that this is my second attempt to send this mail, so don't bother if you got it twice.
cu, Christian.
---
src/Makefile.am | 4 +
src/rhd.h | 4 +
src/rhd_audio.c | 164 +++++++++++++++++++++++++++++
src/rhd_audio.h | 54 ++++++++++
src/rhd_driver.c | 38 +++++++-
src/rhd_hdmi.c | 300
++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/rhd_hdmi.h | 50 +++++++++
src/rhd_lvtma.c | 44 +++++++--
src/rhd_randr.c | 2 +
src/rhd_regs.h | 42 ++++++++
src/rhd_tmds.c | 23 ++++-
11 files changed, 713 insertions(+), 12 deletions(-)
create mode 100644 src/rhd_audio.c
create mode 100644 src/rhd_audio.h
create mode 100644 src/rhd_hdmi.c
create mode 100644 src/rhd_hdmi.h
diff --git a/src/Makefile.am b/src/Makefile.am
index 8cd61c7..52a744b 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -34,6 +34,8 @@ radeonhd_drv_la_SOURCES = \
rhd_randr.c \
rhd_dig.c \
rhd_ddia.c \
+ rhd_audio.c \
+ rhd_hdmi.c \
rhd_atombios.h \
rhd.h \
rhd_i2c.h \
@@ -51,6 +53,8 @@ radeonhd_drv_la_SOURCES = \
rhd_vga.h \
rhd_shadow.h \
rhd_mc.h \
+ rhd_audio.h \
+ rhd_hdmi.h \
r5xx_accel.c \
r5xx_accel.h \
r5xx_xaa.c \
diff --git a/src/rhd.h b/src/rhd.h
index b0e5835..f9e502c 100644
--- a/src/rhd.h
+++ b/src/rhd.h
@@ -210,6 +210,9 @@ typedef struct RHDRec {
RHDOpt rrUseXF86Edid;
RHDOpt rrOutputOrder;
RHDOpt tvModeName;
+ Bool enableAudio;
+ Bool enableHDMI_TMDSA;
+ Bool enableHDMI_TMDSB;
enum RHD_HPD_USAGE hpdUsage;
unsigned int FbMapSize;
pointer FbBase; /* map base of fb */
@@ -254,6 +257,7 @@ typedef struct RHDRec {
struct rhdVGA *VGA; /* VGA compatibility HW */
struct rhdCrtc *Crtc[2];
struct rhdPLL *PLLs[2]; /* Pixelclock PLLs */
+ struct rhdAudio *Audio;
struct rhdLUTStore *LUTStore;
struct rhdLUT *LUT[2];
diff --git a/src/rhd_audio.c b/src/rhd_audio.c
new file mode 100644
index 0000000..2780e2e
--- /dev/null
+++ b/src/rhd_audio.c
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2008 Christian König <deathsimple(a)vodafone.de>
+ * Copyright 2007 Luc Verhaegen <lverhaegen(a)novell.com>
+ * Copyright 2007 Matthias Hopf <mhopf(a)novell.com>
+ * Copyright 2007 Egbert Eich <eich(a)novell.com>
+ * Copyright 2007 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person
obtaining a
+ * copy of this software and associated documentation files (the
"Software"),
+ * to deal in the Software without restriction, including without
limitation
+ * the rights to use, copy, modify, merge, publish, distribute,
sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom
the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM,
DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "xf86.h"
+
+#include "rhd.h"
+#include "rhd_pll.h"
+#include "rhd_audio.h"
+#include "rhd_regs.h"
+
+/*
+ *
+ */
+void
+RHDAudioInit(RHDPtr rhdPtr)
+{
+ RHDFUNC(rhdPtr);
+
+ if (rhdPtr->ChipSet == RHD_RV630) {
+ struct rhdAudio *Audio = (struct rhdAudio *) xnfcalloc(sizeof(struct
rhdAudio), 1);
+
+ Audio->scrnIndex = rhdPtr->scrnIndex;
+ Audio->Stored = FALSE;
+
+ rhdPtr->Audio = Audio;
+ } else
+ rhdPtr->Audio = NULL;
+}
+
+/*
+ *
+ */
+void
+RHDAudioSetClock(RHDPtr rhdPtr, struct rhdPLL *pll)
+{
+ struct rhdAudio *Audio = rhdPtr->Audio;
+ CARD32 AudioRate = 48000;
+ CARD32 Clock = pll->CurrentClock;
+
+ if (!Audio) return;
+
+ if (pll->Id == PLL_ID_PLL1) {
+ RHDRegWrite(Audio, AUDIO_PLL1_MUL, AudioRate*50);
+ RHDRegWrite(Audio, AUDIO_PLL1_DIV, Clock*100);
+ RHDRegWrite(Audio, AUDIO_CLK_SRCSEL, 0);
+
+ } else if (pll->Id == PLL_ID_PLL2) {
+ RHDRegWrite(Audio, AUDIO_PLL2_MUL, AudioRate*50);
+ RHDRegWrite(Audio, AUDIO_PLL2_DIV, Clock*100);
+ RHDRegWrite(Audio, AUDIO_CLK_SRCSEL, 1);
+ }
+}
+
+/*
+ *
+ */
+void
+RHDAudioSetEnable(RHDPtr rhdPtr, Bool Enable)
+{
+ struct rhdAudio *Audio = rhdPtr->Audio;
+ if (!Audio) return;
+
+ RHDFUNC(Audio);
+
+ RHDRegMask(Audio, AUDIO_ENABLE, Enable ? 0x80000000 : 0x0,
0x80000000);
+ /*
+ RHDRegWrite(Output, AUDIO_UNKNOWN_0, 0x70);
+ RHDRegWrite(Output, AUDIO_UNKNOWN_1, 0x1);
+ */
+}
+
+/*
+ *
+ */
+void
+RHDAudioSave(RHDPtr rhdPtr)
+{
+ struct rhdAudio *Audio = rhdPtr->Audio;
+ if (!Audio) return;
+
+ RHDFUNC(Audio);
+
+ Audio->StoreEnabled = RHDRegRead(Audio, AUDIO_ENABLE) &
0x80000000 ? TRUE : FALSE;
+
+ Audio->StoreUnknown0 = RHDRegRead(Audio, AUDIO_UNKNOWN_0);
+ Audio->StoreUnknown1 = RHDRegRead(Audio, AUDIO_UNKNOWN_1);
+
+ Audio->StorePll1Mul = RHDRegRead(Audio, AUDIO_PLL1_MUL);
+ Audio->StorePll1Div = RHDRegRead(Audio, AUDIO_PLL1_DIV);
+ Audio->StorePll2Mul = RHDRegRead(Audio, AUDIO_PLL2_MUL);
+ Audio->StorePll2Div = RHDRegRead(Audio, AUDIO_PLL2_DIV);
+ Audio->StoreClockSrcSel = RHDRegRead(Audio, AUDIO_CLK_SRCSEL);
+
+ Audio->Stored = TRUE;
+}
+
+/*
+ *
+ */
+void
+RHDAudioRestore(RHDPtr rhdPtr)
+{
+ struct rhdAudio *Audio = rhdPtr->Audio;
+ if (!Audio) return;
+
+ RHDFUNC(Audio);
+
+ if (!Audio->Stored) {
+ xf86DrvMsg(Audio->scrnIndex, X_ERROR, "%s: trying to restore "
+ "uninitialized values.\n", __func__);
+ return;
+ }
+
+ RHDAudioSetEnable(rhdPtr, Audio->StoreEnabled);
+
+ RHDRegWrite(Audio, AUDIO_UNKNOWN_0, Audio->StoreUnknown0);
+ RHDRegWrite(Audio, AUDIO_UNKNOWN_1, Audio->StoreUnknown1);
+
+ RHDRegWrite(Audio, AUDIO_PLL1_MUL, Audio->StorePll1Mul);
+ RHDRegWrite(Audio, AUDIO_PLL1_DIV, Audio->StorePll1Div);
+ RHDRegWrite(Audio, AUDIO_PLL2_MUL, Audio->StorePll2Mul);
+ RHDRegWrite(Audio, AUDIO_PLL2_DIV, Audio->StorePll2Div);
+ RHDRegWrite(Audio, AUDIO_CLK_SRCSEL, Audio->StoreClockSrcSel);
+}
+
+/*
+ *
+ */
+void
+RHDAudioDestroy(RHDPtr rhdPtr)
+{
+ RHDFUNC(rhdPtr);
+
+ if (!rhdPtr->Audio) return;
+
+ xfree(rhdPtr->Audio);
+}
diff --git a/src/rhd_audio.h b/src/rhd_audio.h
new file mode 100644
index 0000000..fffb36b
--- /dev/null
+++ b/src/rhd_audio.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2008 Christian König <deathsimple(a)vodafone.de>
+ * Copyright 2007 Luc Verhaegen <lverhaegen(a)novell.com>
+ * Copyright 2007 Matthias Hopf <mhopf(a)novell.com>
+ * Copyright 2007 Egbert Eich <eich(a)novell.com>
+ * Copyright 2007 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person
obtaining a
+ * copy of this software and associated documentation files (the
"Software"),
+ * to deal in the Software without restriction, including without
limitation
+ * the rights to use, copy, modify, merge, publish, distribute,
sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom
the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM,
DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef _RHD_AUDIO_H
+#define _RHD_AUDIO_H
+
+struct rhdAudio {
+
+ int scrnIndex;
+
+ Bool Stored;
+ Bool StoreEnabled;
+
+ CARD32 StoreUnknown0;
+ CARD32 StoreUnknown1;
+
+ CARD32 StorePll1Mul;
+ CARD32 StorePll1Div;
+ CARD32 StorePll2Mul;
+ CARD32 StorePll2Div;
+ CARD32 StoreClockSrcSel;
+};
+
+void RHDAudioInit(RHDPtr rhdPtr);
+void RHDAudioSetClock(RHDPtr rhdPtr, struct rhdPLL *pll);
+void RHDAudioSetEnable(RHDPtr rhdPtr, Bool Enable);
+void RHDAudioSave(RHDPtr rhdPtr);
+void RHDAudioRestore(RHDPtr rhdPtr);
+void RHDAudioDestroy(RHDPtr rhdPtr);
+
+#endif /* _RHD_AUDIO_H */
diff --git a/src/rhd_driver.c b/src/rhd_driver.c
index b8f7dea..e0a5afe 100644
--- a/src/rhd_driver.c
+++ b/src/rhd_driver.c
@@ -111,6 +111,7 @@
#include "rhd_shadow.h"
#include "rhd_card.h"
#include "rhd_randr.h"
+#include "rhd_audio.h"
#include "r5xx_accel.h"
/* ??? */
@@ -230,7 +231,9 @@ typedef enum {
OPTION_NORANDR,
OPTION_RRUSEXF86EDID,
OPTION_RROUTPUTORDER,
- OPTION_TV_MODE
+ OPTION_TV_MODE,
+ OPTION_AUDIO,
+ OPTION_HDMI
} RHDOpts;
static const OptionInfoRec RHDOptions[] = {
@@ -247,6 +250,8 @@ static const OptionInfoRec RHDOptions[] = {
{ OPTION_RRUSEXF86EDID, "RRUseXF86Edid",
OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_RROUTPUTORDER, "RROutputOrder", OPTV_ANYSTR,
{0}, FALSE },
{ OPTION_TV_MODE, "TVMode", OPTV_ANYSTR, {0},
FALSE },
+ { OPTION_AUDIO, "Audio", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_HDMI, "HDMI", OPTV_ANYSTR, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -318,6 +323,7 @@ RHDFreeRec(ScrnInfoPtr pScrn)
RHDMCDestroy(rhdPtr);
RHDVGADestroy(rhdPtr);
RHDPLLsDestroy(rhdPtr);
+ RHDAudioDestroy(rhdPtr);
RHDLUTsDestroy(rhdPtr);
RHDOutputsDestroy(rhdPtr);
RHDConnectorsDestroy(rhdPtr);
@@ -737,6 +743,7 @@ RHDPreInit(ScrnInfoPtr pScrn, int flags)
RHDMCInit(rhdPtr);
RHDCrtcsInit(rhdPtr);
RHDPLLsInit(rhdPtr);
+ RHDAudioInit(rhdPtr);
RHDLUTsInit(rhdPtr);
RHDCursorsInit(rhdPtr); /* do this irrespective of hw/sw cursor
setting */
@@ -1024,6 +1031,9 @@ RHDScreenInit(int scrnIndex, ScreenPtr pScreen,
int argc, char **argv)
/* fix viewport */
RHDAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
+ /* enable/disable audio */
+ RHDAudioSetEnable(rhdPtr, rhdPtr->enableAudio);
+
/* Initialise cursor functions */
miDCInitialize (pScreen, xf86GetPointerScreenFuncs());
@@ -1982,6 +1992,7 @@ rhdSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
if (Crtc->ScaleSet)
Crtc->ScaleSet(Crtc, RHD_CRTC_SCALE_TYPE_NONE, mode, NULL);
RHDPLLSet(Crtc->PLL, mode->Clock);
+ RHDAudioSetClock(rhdPtr, Crtc->PLL);
Crtc->LUTSelect(Crtc, Crtc->LUT);
RHDOutputsMode(rhdPtr, Crtc, mode);
}
@@ -1995,6 +2006,7 @@ rhdSetMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
if (Crtc->ScaleSet)
Crtc->ScaleSet(Crtc, RHD_CRTC_SCALE_TYPE_NONE, mode, NULL);
RHDPLLSet(Crtc->PLL, mode->Clock);
+ RHDAudioSetClock(rhdPtr, Crtc->PLL);
Crtc->LUTSelect(Crtc, Crtc->LUT);
RHDOutputsMode(rhdPtr, Crtc, mode);
}
@@ -2033,6 +2045,7 @@ rhdSave(RHDPtr rhdPtr)
RHDOutputsSave(rhdPtr);
RHDPLLsSave(rhdPtr);
+ RHDAudioSave(rhdPtr);
RHDLUTsSave(rhdPtr);
rhdPtr->Crtc[0]->Save(rhdPtr->Crtc[0]);
@@ -2056,6 +2069,7 @@ rhdRestore(RHDPtr rhdPtr)
rhdRestoreCursor(pScrn);
RHDPLLsRestore(rhdPtr);
+ RHDAudioRestore(rhdPtr);
RHDLUTsRestore(rhdPtr);
RHDVGARestore(rhdPtr);
@@ -2292,6 +2306,8 @@ rhdProcessOptions(ScrnInfoPtr pScrn)
{
RHDPtr rhdPtr = RHDPTR(pScrn);
RHDOpt hpd;
+ RHDOpt audio;
+ RHDOpt hdmi;
/* Collect all of the relevant option flags (fill in
pScrn->options) */
xf86CollectOptions(pScrn, NULL);
rhdPtr->Options = xnfcalloc(sizeof(RHDOptions), 1);
@@ -2316,6 +2332,10 @@ rhdProcessOptions(ScrnInfoPtr pScrn)
&rhdPtr->rrOutputOrder, NULL);
RhdGetOptValString (rhdPtr->Options, OPTION_TV_MODE,
&rhdPtr->tvModeName, NULL);
+ RhdGetOptValBool (rhdPtr->Options, OPTION_AUDIO,
+ &audio, FALSE);
+ RhdGetOptValString (rhdPtr->Options, OPTION_HDMI,
+ &hdmi, "none");
rhdAccelOptionsHandle(pScrn);
@@ -2335,6 +2355,22 @@ rhdProcessOptions(ScrnInfoPtr pScrn)
"!!! Option HPD is set !!!\n"
" This shall only be used to work around broken connector
tables.\n"
" Please report your findings to radeonhd(a)opensuse.org\n");
+
+ rhdPtr->enableAudio = audio.val.bool;
+
+ rhdPtr->enableHDMI_TMDSA = FALSE;
+ rhdPtr->enableHDMI_TMDSB = FALSE;
+ if (strcasecmp(hdmi.val.string, "both") == 0) {
+ rhdPtr->enableHDMI_TMDSA = TRUE;
+ rhdPtr->enableHDMI_TMDSB = TRUE;
+ } else if (strcasecmp(hdmi.val.string, "tmdsa") == 0) {
+ rhdPtr->enableHDMI_TMDSA = TRUE;
+ } else if (strcasecmp(hdmi.val.string, "tmdsb") == 0) {
+ rhdPtr->enableHDMI_TMDSB = TRUE;
+ } else if (strcasecmp(hdmi.val.string, "none") != 0) {
+ xf86DrvMsgVerb(rhdPtr->scrnIndex, X_ERROR, 0,
+ "Unknown HDMI Option \"%s\"", hdmi.val.string);
+ }
}
/*
diff --git a/src/rhd_hdmi.c b/src/rhd_hdmi.c
new file mode 100644
index 0000000..5642ff8
--- /dev/null
+++ b/src/rhd_hdmi.c
@@ -0,0 +1,300 @@
+/*
+ * Copyright 2008 Christian König <deathsimple(a)vodafone.de>
+ * Copyright 2007 Luc Verhaegen <lverhaegen(a)novell.com>
+ * Copyright 2007 Matthias Hopf <mhopf(a)novell.com>
+ * Copyright 2007 Egbert Eich <eich(a)novell.com>
+ * Copyright 2007 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person
obtaining a
+ * copy of this software and associated documentation files (the
"Software"),
+ * to deal in the Software without restriction, including without
limitation
+ * the rights to use, copy, modify, merge, publish, distribute,
sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom
the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM,
DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "xf86.h"
+
+#include "rhd.h"
+#include "rhd_hdmi.h"
+#include "rhd_regs.h"
+
+enum HdmiColorFormat {
+ RGB = 0,
+ /* YCC 4:2:2 or 4:4:4 ? */
+ YCC = 2
+};
+
+/*
+ *
+ */
+static void
+HdmiInfoFrameChecksum(CARD8 packetType, CARD8 versionNumber, CARD8
length, CARD8* frame)
+{
+ int i;
+ frame[0] = packetType + versionNumber + length;
+ for(i=1;i<=length;i++)
+ frame[0] += frame[i];
+ frame[0] = 0x100 - frame[0];
+}
+
+/*
+ *
+ */
+static void
+HdmiVideoInfoFrame(
+ struct rhdHdmi *hdmi,
+ enum HdmiColorFormat ColorFormat,
+ Bool ActiveInformationPresent,
+ CARD8 ActiveFormatAspectRatio,
+ CARD8 ScanInformation,
+ CARD8 Colorimetry,
+ CARD8 ExColorimetry,
+ CARD8 Quantization,
+ Bool ITC,
+ CARD8 PictureAspectRatio,
+ CARD8 VideoFormatIdentification,
+ CARD8 PixelRepetition,
+ CARD8 NonUniformPictureScaling,
+ CARD8 BarInfoDataValid,
+ CARD16 TopBar,
+ CARD16 BottomBar,
+ CARD16 LeftBar,
+ CARD16 RightBar
+)
+{
+ CARD8 frame[14];
+
+ frame[0x0] = 0;
+ frame[0x1] =
+ (ScanInformation & 0x3) |
+ ((BarInfoDataValid & 0x3) << 2) |
+ ((ActiveInformationPresent & 0x1) << 4) |
+ ((ColorFormat & 0x3) << 5);
+ frame[0x2] =
+ (ActiveFormatAspectRatio & 0xF) |
+ ((PictureAspectRatio & 0x3) << 4) |
+ ((Colorimetry & 0x3) << 6);
+ frame[0x3] =
+ (NonUniformPictureScaling & 0x3) |
+ ((Quantization & 0x3) << 2) |
+ ((ExColorimetry & 0x7) << 4) |
+ ((ITC & 0x1) << 7);
+ frame[0x4] = (VideoFormatIdentification & 0x7F);
+ frame[0x5] = (PixelRepetition & 0xF);
+ frame[0x6] = (TopBar & 0xFF);
+ frame[0x7] = (TopBar >> 8);
+ frame[0x8] = (BottomBar & 0xFF);
+ frame[0x9] = (BottomBar >> 8);
+ frame[0xA] = (LeftBar & 0xFF);
+ frame[0xB] = (LeftBar >> 8);
+ frame[0xC] = (RightBar & 0xFF);
+ frame[0xD] = (RightBar >> 8);
+
+ HdmiInfoFrameChecksum(0x82, 0x02, 0x0D, frame);
+
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_VIDEOINFOFRAME_0,
+ frame[0x0] | (frame[0x1] << 8) | (frame[0x2] << 16) | (frame[0x3] <<
24));
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_VIDEOINFOFRAME_1,
+ frame[0x4] | (frame[0x5] << 8) | (frame[0x6] << 16) | (frame[0x7] <<
24));
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_VIDEOINFOFRAME_2,
+ frame[0x8] | (frame[0x9] << 8) | (frame[0xA] << 16) | (frame[0xB] <<
24));
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_VIDEOINFOFRAME_3,
+ frame[0xC] | (frame[0xD] << 8));
+}
+
+/*
+ *
+ */
+static void
+HdmiAudioInfoFrame(
+ struct rhdHdmi *hdmi,
+ CARD8 ChannelCount,
+ CARD8 CodingType,
+ CARD8 SampleSize,
+ CARD8 SampleFrequency,
+ CARD8 Format,
+ CARD8 ChannelAllocation,
+ CARD8 LevelShift,
+ Bool DownmixInhibit
+)
+{
+ CARD8 frame[11];
+
+ frame[0x0] = 0;
+ frame[0x1] = (ChannelCount & 0x7) | ((CodingType & 0xF) << 4);
+ frame[0x2] = (SampleSize & 0x3) | ((SampleFrequency & 0x7) << 2);
+ frame[0x3] = Format;
+ frame[0x4] = ChannelAllocation;
+ frame[0x5] = ((LevelShift & 0xF) << 3) | ((DownmixInhibit & 0x1) <<
7);
+ frame[0x6] = 0;
+ frame[0x7] = 0;
+ frame[0x8] = 0;
+ frame[0x9] = 0;
+ frame[0xA] = 0;
+
+ HdmiInfoFrameChecksum(0x84, 0x01, 0x0A, frame);
+
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIOINFOFRAME_0,
+ frame[0x0] | (frame[0x1] << 8) | (frame[0x2] << 16) | (frame[0x3] <<
24));
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIOINFOFRAME_1,
+ frame[0x4] | (frame[0x5] << 8) | (frame[0x6] << 16) | (frame[0x8] <<
24));
+}
+
+/*
+ *
+ */
+struct rhdHdmi*
+RHDHdmiInit(RHDPtr rhdPtr, CARD16 Offset)
+{
+ struct rhdHdmi *hdmi;
+ RHDFUNC(rhdPtr);
+
+ if(rhdPtr->ChipSet == RHD_RV630) {
+ hdmi = (struct rhdHdmi *) xnfcalloc(sizeof(struct rhdHdmi), 1);
+ hdmi->scrnIndex = rhdPtr->scrnIndex;
+ hdmi->Offset = Offset;
+ hdmi->Stored = FALSE;
+ return hdmi;
+ } else
+ return NULL;
+}
+
+/*
+ *
+ */
+void
+RHDHdmiEnable(struct rhdHdmi *hdmi, Bool Enable)
+{
+ if(!hdmi) return;
+ RHDFUNC(hdmi);
+
+ if(!Enable)
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, 0x0);
+ else if(hdmi->Offset == HDMI_TMDSA)
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, 0x101);
+ else if(hdmi->Offset == HDMI_TMDSB)
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, 0x105);
+
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_CNTL, 0x14020011);
+
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_0, 0x31);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_1, 0x93);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_2, 0x202);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_3, 0x0);
+
+ HdmiVideoInfoFrame(hdmi, RGB, FALSE, 0, 0, 0, 0, 0, FALSE, 0, 0, 0,
0, 0, 0, 0, 0, 0);
+
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_4, 0x1220a000);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_5, 0x1000);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_6, 0x14244000);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_7, 0x1880);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_8, 0x1220a000);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_9, 0x1800);
+
+ HdmiAudioInfoFrame(hdmi, 1, 0, 0, 0, 0, 0, 0, FALSE);
+
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_A, 0x100000);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_B, 0x200000);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_C, 0x1000);
+
+}
+
+/*
+ *
+ */
+void
+RHDHdmiSave(struct rhdHdmi *hdmi)
+{
+ if(!hdmi) return;
+ RHDFUNC(hdmi);
+
+ hdmi->StoreEnable = RHDRegRead(hdmi, hdmi->Offset+HDMI_ENABLE);
+ hdmi->StoreControl = RHDRegRead(hdmi, hdmi->Offset+HDMI_CNTL);
+ hdmi->StoreUnknown[0x0] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_0);
+ hdmi->StoreUnknown[0x1] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_1);
+ hdmi->StoreUnknown[0x2] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_2);
+ hdmi->StoreUnknown[0x3] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_3);
+ hdmi->StoreVideoInfoFrame[0x0] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_VIDEOINFOFRAME_0);
+ hdmi->StoreVideoInfoFrame[0x1] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_VIDEOINFOFRAME_1);
+ hdmi->StoreVideoInfoFrame[0x2] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_VIDEOINFOFRAME_2);
+ hdmi->StoreVideoInfoFrame[0x3] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_VIDEOINFOFRAME_3);
+ hdmi->StoreUnknown[0x4] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_4);
+ hdmi->StoreUnknown[0x5] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_5);
+ hdmi->StoreUnknown[0x6] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_6);
+ hdmi->StoreUnknown[0x7] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_7);
+ hdmi->StoreUnknown[0x8] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_8);
+ hdmi->StoreUnknown[0x9] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_9);
+ hdmi->StoreAudioInfoFrame[0x0] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_AUDIOINFOFRAME_0);
+ hdmi->StoreAudioInfoFrame[0x1] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_AUDIOINFOFRAME_1);
+ hdmi->StoreUnknown[0xa] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_A);
+ hdmi->StoreUnknown[0xb] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_B);
+ hdmi->StoreUnknown[0xc] = RHDRegRead(hdmi, hdmi->Offset
+HDMI_UNKNOWN_C);
+
+ hdmi->Stored = TRUE;
+}
+
+/*
+ *
+ */
+void
+RHDHdmiRestore(struct rhdHdmi *hdmi)
+{
+ if(!hdmi) return;
+ RHDFUNC(hdmi);
+
+ if (!hdmi->Stored) {
+ xf86DrvMsg(hdmi->scrnIndex, X_ERROR, "%s: trying to restore "
+ "uninitialized values.\n", __func__);
+ return;
+ }
+
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_ENABLE, hdmi->StoreEnable);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_CNTL, hdmi->StoreControl);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_0,
hdmi->StoreUnknown[0x0]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_1,
hdmi->StoreUnknown[0x1]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_2,
hdmi->StoreUnknown[0x2]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_3,
hdmi->StoreUnknown[0x3]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_VIDEOINFOFRAME_0,
hdmi->StoreVideoInfoFrame[0x0]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_VIDEOINFOFRAME_1,
hdmi->StoreVideoInfoFrame[0x1]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_VIDEOINFOFRAME_2,
hdmi->StoreVideoInfoFrame[0x2]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_VIDEOINFOFRAME_3,
hdmi->StoreVideoInfoFrame[0x3]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_4,
hdmi->StoreUnknown[0x4]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_5,
hdmi->StoreUnknown[0x5]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_6,
hdmi->StoreUnknown[0x6]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_7,
hdmi->StoreUnknown[0x7]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_8,
hdmi->StoreUnknown[0x8]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_9,
hdmi->StoreUnknown[0x9]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIOINFOFRAME_0,
hdmi->StoreAudioInfoFrame[0x0]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_AUDIOINFOFRAME_1,
hdmi->StoreAudioInfoFrame[0x1]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_A,
hdmi->StoreUnknown[0xa]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_B,
hdmi->StoreUnknown[0xb]);
+ RHDRegWrite(hdmi, hdmi->Offset+HDMI_UNKNOWN_C,
hdmi->StoreUnknown[0xc]);
+}
+
+/*
+ *
+ */
+void
+RHDHdmiDestroy(struct rhdHdmi *hdmi)
+{
+ if(!hdmi) return;
+ RHDFUNC(hdmi);
+
+ xfree(hdmi);
+}
diff --git a/src/rhd_hdmi.h b/src/rhd_hdmi.h
new file mode 100644
index 0000000..3f0f5a9
--- /dev/null
+++ b/src/rhd_hdmi.h
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2008 Christian König <deathsimple(a)vodafone.de>
+ * Copyright 2007 Luc Verhaegen <lverhaegen(a)novell.com>
+ * Copyright 2007 Matthias Hopf <mhopf(a)novell.com>
+ * Copyright 2007 Egbert Eich <eich(a)novell.com>
+ * Copyright 2007 Advanced Micro Devices, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person
obtaining a
+ * copy of this software and associated documentation files (the
"Software"),
+ * to deal in the Software without restriction, including without
limitation
+ * the rights to use, copy, modify, merge, publish, distribute,
sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom
the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
SHALL
+ * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM,
DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef _RHD_HDMI_H
+#define _RHD_HDMI_H
+
+struct rhdHdmi {
+
+ int scrnIndex;
+
+ CARD16 Offset;
+
+ Bool Stored;
+ CARD32 StoreEnable;
+ CARD32 StoreControl;
+ CARD32 StoreUnknown[0xd];
+ CARD32 StoreVideoInfoFrame[0x4];
+ CARD32 StoreAudioInfoFrame[0x2];
+};
+
+struct rhdHdmi* RHDHdmiInit(RHDPtr rhdPtr, CARD16 Offset);
+void RHDHdmiEnable(struct rhdHdmi *rhdHdmi, Bool Enable);
+void RHDHdmiSave(struct rhdHdmi* rhdHdmi);
+void RHDHdmiRestore(struct rhdHdmi* rhdHdmi);
+void RHDHdmiDestroy(struct rhdHdmi* rhdHdmi);
+
+#endif /* _RHD_HDMI_H */
diff --git a/src/rhd_lvtma.c b/src/rhd_lvtma.c
index 69694c7..5ec3922 100644
--- a/src/rhd_lvtma.c
+++ b/src/rhd_lvtma.c
@@ -48,6 +48,7 @@
#include "rhd_output.h"
#include "rhd_regs.h"
#include "rhd_card.h"
+#include "rhd_hdmi.h"
#ifdef ATOM_BIOS
#include "rhd_atombios.h"
#endif
@@ -278,7 +279,7 @@ LVDSSet(struct rhdOutput *Output, DisplayModePtr
Mode)
RHDFUNC(Output);
- RHDRegMask(Output, LVTMA_CNTL, 0x00000001, 0x00000001); /* enable
*/
+ RHDRegMask(Output, LVTMA_CNTL, 0x00000001, 0x00000005); /* enable
*/
usleep(20);
RHDRegWrite(Output, LVTMA_MODE, 0); /* set to LVDS */
@@ -689,6 +690,21 @@ LVDSInfoRetrieve(RHDPtr rhdPtr)
/*
*
+ */
+static void
+LVDSDestroy(struct rhdOutput *Output)
+{
+ RHDFUNC(Output);
+
+ if (!Output->Private)
+ return;
+
+ xfree(Output->Private);
+ Output->Private = NULL;
+}
+
+/*
+ *
* Handling for LVTMA block as TMDS.
*
*/
@@ -697,6 +713,8 @@ struct rhdTMDSBPrivate {
Bool Coherent;
DisplayModePtr Mode;
+ struct rhdHdmi *Hdmi;
+
Bool Stored;
CARD32 StoreControl;
@@ -1130,7 +1148,7 @@ TMDSBPower(struct rhdOutput *Output, int Power)
switch (Power) {
case RHD_POWER_ON:
- RHDRegMask(Output, LVTMA_CNTL, 0x00000001, 0x00000001);
+ RHDRegMask(Output, LVTMA_CNTL, rhdPtr->enableHDMI_TMDSB ? 0x5 : 0x1,
0x00000005);
if (Private->RunsDualLink)
RHDRegMask(Output, LVTMA_TRANSMITTER_ENABLE,
0x00003E3E,0x00003E3E);
@@ -1140,6 +1158,7 @@ TMDSBPower(struct rhdOutput *Output, int Power)
RHDRegMask(Output, LVTMA_TRANSMITTER_CONTROL, 0x00000001, 0x00000001);
usleep(2);
RHDRegMask(Output, LVTMA_TRANSMITTER_CONTROL, 0, 0x00000002);
+ RHDHdmiEnable(Private->Hdmi, rhdPtr->enableHDMI_TMDSB);
return;
case RHD_POWER_RESET:
RHDRegMask(Output, LVTMA_TRANSMITTER_ENABLE, 0, 0x00003E3E);
@@ -1150,7 +1169,8 @@ TMDSBPower(struct rhdOutput *Output, int Power)
usleep(2);
RHDRegMask(Output, LVTMA_TRANSMITTER_CONTROL, 0, 0x00000001);
RHDRegMask(Output, LVTMA_TRANSMITTER_ENABLE, 0, 0x00003E3E);
- RHDRegMask(Output, LVTMA_CNTL, 0, 0x00000001);
+ RHDRegMask(Output, LVTMA_CNTL, 0, 0x00000005);
+ RHDHdmiEnable(Private->Hdmi, FALSE);
return;
}
}
@@ -1185,6 +1205,8 @@ TMDSBSave(struct rhdOutput *Output)
Private->StoreRv600PreEmphasis = RHDRegRead(Output,
LVTMA_PREEMPHASIS_CONTROL);
}
+ RHDHdmiSave(Private->Hdmi);
+
Private->Stored = TRUE;
}
@@ -1223,6 +1245,8 @@ TMDSBRestore(struct rhdOutput *Output)
RHDRegWrite(Output, LVTMA_TRANSMITTER_ADJUST,
Private->StoreRv600TXAdjust);
RHDRegWrite(Output, LVTMA_PREEMPHASIS_CONTROL,
Private->StoreRv600PreEmphasis);
}
+
+ RHDHdmiRestore(Private->Hdmi);
}
@@ -1230,14 +1254,18 @@ TMDSBRestore(struct rhdOutput *Output)
*
*/
static void
-LVTMADestroy(struct rhdOutput *Output)
+TMDSBDestroy(struct rhdOutput *Output)
{
+ struct rhdTMDSBPrivate *Private = (struct rhdTMDSBPrivate *)
Output->Private;
RHDFUNC(Output);
- if (!Output->Private)
+ if (!Private)
return;
- xfree(Output->Private);
+ if (Private->Hdmi)
+ RHDHdmiDestroy(Private->Hdmi);
+
+ xfree(Private);
Output->Private = NULL;
}
@@ -1266,7 +1294,6 @@ RHDLVTMAInit(RHDPtr rhdPtr, CARD8 Type)
Output->Id = RHD_OUTPUT_LVTMA;
Output->Sense = NULL; /* not implemented in hw */
- Output->Destroy = LVTMADestroy;
if (Type == RHD_CONNECTOR_PANEL) {
Output->Name = "LVDS";
@@ -1277,6 +1304,7 @@ RHDLVTMAInit(RHDPtr rhdPtr, CARD8 Type)
Output->Save = LVDSSave;
Output->Restore = LVDSRestore;
Output->Property = LVDSPropertyControl;
+ Output->Destroy = LVDSDestroy;
Output->Private = LVDSInfoRetrieve(rhdPtr);
LVDSDebugBacklight(Output);
@@ -1291,7 +1319,9 @@ RHDLVTMAInit(RHDPtr rhdPtr, CARD8 Type)
Output->Save = TMDSBSave;
Output->Restore = TMDSBRestore;
Output->Property = TMDSBPropertyControl;
+ Output->Destroy = TMDSBDestroy;
+ Private->Hdmi = RHDHdmiInit(rhdPtr, HDMI_TMDSB);
Output->Private = Private;
Private->RunsDualLink = FALSE;
diff --git a/src/rhd_randr.c b/src/rhd_randr.c
index ea42c83..d8554c5 100644
--- a/src/rhd_randr.c
+++ b/src/rhd_randr.c
@@ -70,6 +70,7 @@
# include "rhd_lut.h"
# include "rhd_mc.h"
# include "rhd_card.h"
+# include "rhd_audio.h"
/*
* Driver internal
@@ -369,6 +370,7 @@ rhdRRCrtcModeSet(xf86CrtcPtr crtc,
Crtc->FrameSet(Crtc, x, y);
rhdUpdateCrtcPos(Crtc, Crtc->Cursor->X, Crtc->Cursor->Y);
RHDPLLSet(Crtc->PLL, Mode->Clock); /* This also powers up PLL */
+ RHDAudioSetClock(rhdPtr, Crtc->PLL);
Crtc->LUTSelect(Crtc, Crtc->LUT);
}
static void
diff --git a/src/rhd_regs.h b/src/rhd_regs.h
index 6b149ed..68bcaf8 100644
--- a/src/rhd_regs.h
+++ b/src/rhd_regs.h
@@ -93,6 +93,15 @@ enum {
PCLK_CRTC1_CNTL = 0x0480,
PCLK_CRTC2_CNTL = 0x0484,
+ /* these regs were reverse enginered,
+ * so the chance is high that the naming is wrong
+ * R6xx+ ??? */
+ AUDIO_PLL1_MUL = 0x0514,
+ AUDIO_PLL1_DIV = 0x0518,
+ AUDIO_PLL2_MUL = 0x0524,
+ AUDIO_PLL2_DIV = 0x0528,
+ AUDIO_CLK_SRCSEL = 0x0534,
+
DCCG_DISP_CLK_SRCSEL = 0x0538, /* rv620+ */
R6XX_MC_VM_FB_LOCATION = 0x2180,
@@ -249,6 +258,15 @@ enum {
D2SCL_DITHER = 0x6DD4, /* guess */
D2SCL_FLIP_CONTROL = 0x6DD8, /* guess */
+ /* Audio, reverse enginered */
+ AUDIO_ENABLE = 0x7300,
+ AUDIO_UNKNOWN_0 = 0x7344,
+ AUDIO_UNKNOWN_1 = 0x7398,
+
+ /* HDMI */
+ HDMI_TMDSA = 0x7400,
+ HDMI_TMDSB = 0x7700,
+
/* R500 DAC A */
DACA_ENABLE = 0x7800,
DACA_SOURCE_SELECT = 0x7804,
@@ -962,5 +980,29 @@ enum {
#define MC_IND_DATA_BIT 0xffffffff
};
+enum {
+ /* HDMI registers */
+ HDMI_ENABLE = 0x00,
+ HDMI_CNTL = 0x08,
+ HDMI_UNKNOWN_0 = 0x10,
+ HDMI_UNKNOWN_1 = 0x14,
+ HDMI_UNKNOWN_2 = 0x18,
+ HDMI_UNKNOWN_3 = 0x28,
+ HDMI_VIDEOINFOFRAME_0 = 0x54,
+ HDMI_VIDEOINFOFRAME_1 = 0x58,
+ HDMI_VIDEOINFOFRAME_2 = 0x5c,
+ HDMI_VIDEOINFOFRAME_3 = 0x60,
+ HDMI_UNKNOWN_4 = 0xac,
+ HDMI_UNKNOWN_5 = 0xb0,
+ HDMI_UNKNOWN_6 = 0xb4,
+ HDMI_UNKNOWN_7 = 0xb8,
+ HDMI_UNKNOWN_8 = 0xbc,
+ HDMI_UNKNOWN_9 = 0xc0,
+ HDMI_AUDIOINFOFRAME_0 = 0xcc,
+ HDMI_AUDIOINFOFRAME_1 = 0xd0,
+ HDMI_UNKNOWN_A = 0xd4,
+ HDMI_UNKNOWN_B = 0xd8,
+ HDMI_UNKNOWN_C = 0xdc
+};
#endif /* _RHD_REGS_H */
diff --git a/src/rhd_tmds.c b/src/rhd_tmds.c
index 31dfea1..4946d95 100644
--- a/src/rhd_tmds.c
+++ b/src/rhd_tmds.c
@@ -46,6 +46,7 @@
#include "rhd_connector.h"
#include "rhd_output.h"
#include "rhd_regs.h"
+#include "rhd_hdmi.h"
struct rhdTMDSPrivate {
Bool RunsDualLink;
@@ -53,6 +54,8 @@ struct rhdTMDSPrivate {
Bool Coherent;
int PowerState;
+ struct rhdHdmi *Hdmi;
+
Bool Stored;
CARD32 StoreControl;
@@ -348,7 +351,7 @@ TMDSAPower(struct rhdOutput *Output, int Power)
case RHD_POWER_ON:
if (Private->PowerState == RHD_POWER_SHUTDOWN
|| Private->PowerState == RHD_POWER_UNKNOWN) {
- RHDRegMask(Output, TMDSA_CNTL, 0x00000001, 0x00000001);
+ RHDRegMask(Output, TMDSA_CNTL, rhdPtr->enableHDMI_TMDSA ? 0x5 :
0x1, 0x00000005);
RHDRegMask(Output, TMDSA_TRANSMITTER_CONTROL, 0x00000001,
0x00000001);
usleep(20);
@@ -380,6 +383,8 @@ TMDSAPower(struct rhdOutput *Output, int Power)
RHDRegMask(Output, TMDSA_TRANSMITTER_ENABLE, 0x00001F1F,
0x00001F1F);
} else
RHDRegMask(Output, TMDSA_TRANSMITTER_ENABLE, 0x0000001F,
0x00001F1F);
+
+ RHDHdmiEnable(Private->Hdmi, rhdPtr->enableHDMI_TMDSA);
Private->PowerState = RHD_POWER_ON;
return;
@@ -397,7 +402,8 @@ TMDSAPower(struct rhdOutput *Output, int Power)
usleep(2);
RHDRegMask(Output, TMDSA_TRANSMITTER_CONTROL, 0, 0x00000001);
RHDRegMask(Output, TMDSA_TRANSMITTER_ENABLE, 0, 0x00001F1F);
- RHDRegMask(Output, TMDSA_CNTL, 0, 0x00000001);
+ RHDRegMask(Output, TMDSA_CNTL, 0, 0x00000005);
+ RHDHdmiEnable(Private->Hdmi, FALSE);
Private->PowerState = RHD_POWER_SHUTDOWN;
return;
}
@@ -433,6 +439,8 @@ TMDSASave(struct rhdOutput *Output)
if (ChipSet >= RHD_RV610)
Private->StoreTXAdjust = RHDRegRead(Output, TMDSA_TRANSMITTER_ADJUST);
+ RHDHdmiSave(Private->Hdmi);
+
Private->Stored = TRUE;
}
@@ -471,6 +479,8 @@ TMDSARestore(struct rhdOutput *Output)
if (ChipSet >= RHD_RV610)
RHDRegWrite(Output, TMDSA_TRANSMITTER_ADJUST, Private->StoreTXAdjust);
+
+ RHDHdmiRestore(Private->Hdmi);
}
/*
@@ -479,12 +489,16 @@ TMDSARestore(struct rhdOutput *Output)
static void
TMDSADestroy(struct rhdOutput *Output)
{
+ struct rhdTMDSPrivate *Private = (struct rhdTMDSPrivate *)
Output->Private;
RHDFUNC(Output);
- if (!Output->Private)
+ if (!Private)
return;
- xfree(Output->Private);
+ if(Private->Hdmi)
+ RHDHdmiDestroy(Private->Hdmi);
+
+ xfree(Private);
Output->Private = NULL;
}
@@ -518,6 +532,7 @@ RHDTMDSAInit(RHDPtr rhdPtr)
Private->RunsDualLink = FALSE;
Private->Coherent = FALSE;
Private->PowerState = RHD_POWER_UNKNOWN;
+ Private->Hdmi = RHDHdmiInit(rhdPtr, HDMI_TMDSA);
Output->Private = Private;
--
1.5.4.3
--
To unsubscribe, e-mail: radeonhd+unsubscribe(a)opensuse.org
For additional commands, e-mail: radeonhd+help(a)opensuse.org
2
2
I just pushed DRI support to master for radeonhd. Yippie!
That said, direct rendering is turned of by default (Use Option "DRI" to
enable), because currently it still disables all 2D acceleration support
(including ShadowFB). We need full CP (command processor) support in the
driver to be able to do both 2D and 3D acceleration.
Also, on x86_64 the list of provided visuals acts... weird. Dave Airlie
verified that this doesn't happen any more on git master of the Xserver,
at least with the radeon driver - no wonder, the visuals are provided by
the DRI driver now, and not by some "fragile setup" in the GLX layer
(read Xserver commit 7d74690536b if you're interested).
So this is on the TODO list:
* CP support, working together with 2D accel.
Luc's working on CP already.
* Mipmap textures are broken (DRI driver)
* Texture upload after suspend to disk is partially broken
* Watermarks are not set correctly (missing docs)
* Movewindow support is missing (partially superfluous)
This is not tested well enough and needs verification:
* x86_64 working on Xserver git master
* R5xx cards
* AGP
Have fun
Matthias
--
Matthias Hopf <mhopf(a)suse.de> __ __ __
Maxfeldstr. 5 / 90409 Nuernberg (_ | | (_ |__ mat(a)mshopf.de
Phone +49-911-74053-715 __) |_| __) |__ R & D www.mshopf.de
--
To unsubscribe, e-mail: radeonhd+unsubscribe(a)opensuse.org
For additional commands, e-mail: radeonhd+help(a)opensuse.org
8
15
On May 29, 08 09:29:06 -0400, David Morrison wrote:
> Ran into another thing when building the xf86-input-mouse driver against
> the new xserver:
>
> gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -I/usr/include/xorg
> -I/usr/include/pixman-1 -I../src -MT mouse.lo -MD -MP -MF .deps/mouse.Tpo
> -c mouse.c -fPIC -DPIC -o .libs/mouse.o
> mouse.c: In function 'MouseProc':
> mouse.c:1740: warning: passing argument 4 of 'InitPointerDeviceStruct' from
> incompatible pointer type
> mouse.c:1740: warning: passing argument 5 of 'InitPointerDeviceStruct'
> makes integer from pointer without a cast
> mouse.c:1740: error: too many arguments to function
> 'InitPointerDeviceStruct'
> mouse.c: At top level:
> mouse.c:3764: warning: 'ModuleInfoRec' is deprecated
> mouse.c: In function 'xf86MousePlug':
> mouse.c:3789: warning: 'xf86AddModuleInfo' is deprecated (declared at
> /usr/include/xorg/xf86.h:341)
> make[2]: *** [mouse.lo] Error 1
>
> building from git worked OK:
>
> git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-input-mouse
Ok, keyboard worked, or was git necessary as well? Well, doesn't really
matter.
Thanks, updating wiki.
Matthias
--
Matthias Hopf <mhopf(a)suse.de> __ __ __
Maxfeldstr. 5 / 90409 Nuernberg (_ | | (_ |__ mat(a)mshopf.de
Phone +49-911-74053-715 __) |_| __) |__ R & D www.mshopf.de
--
To unsubscribe, e-mail: radeonhd+unsubscribe(a)opensuse.org
For additional commands, e-mail: radeonhd+help(a)opensuse.org
1
0
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Debian etch/stable
artem@anima:~$ X -version
X Window System Version 7.1.1
Release Date: 12 May 2006
X Protocol Version 11, Revision 0, Release 7.1.1
Build Operating System: UNKNOWN
Current Operating System: Linux anima 2.6.18-6-amd64 #1 SMP Sun Feb 10
17:50:19 UTC 2008 x86_64
Black blank screen after starting X
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFIPj7V76yBQwl49nMRAlmRAKCIsnUh2ibav+kTpmFROOy/OOOwjACeMcSx
Jyr/apuG4x/SyAdVoOTaQgI=
=+Sd1
-----END PGP SIGNATURE-----
X Window System Version 7.1.1
Release Date: 12 May 2006
X Protocol Version 11, Revision 0, Release 7.1.1
Build Operating System: UNKNOWN
Current Operating System: Linux anima 2.6.18-6-amd64 #1 SMP Sun Feb 10 17:50:19 UTC 2008 x86_64
Build Date: 24 January 2008
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Module Loader present
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Thu May 29 10:17:49 2008
(==) Using config file: "/etc/X11/xorg.conf"
(==) ServerLayout "Default Layout"
(**) |-->Screen "Default Screen" (0)
(**) | |-->Monitor "Philips 190S"
(**) | |-->Device "ATI Technologies Inc RV380 0x3e50 [Radeon X600]"
(**) |-->Input Device "Generic Keyboard"
(**) |-->Input Device "Configured Mouse"
(WW) The directory "/usr/X11R6/lib/X11/fonts/misc" does not exist.
Entry deleted from font path.
(WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
Entry deleted from font path.
(WW) The directory "/usr/X11R6/lib/X11/fonts/cyrillic" does not exist.
Entry deleted from font path.
(WW) The directory "/usr/X11R6/lib/X11/fonts/100dpi/" does not exist.
Entry deleted from font path.
(WW) The directory "/usr/X11R6/lib/X11/fonts/75dpi/" does not exist.
Entry deleted from font path.
(WW) The directory "/usr/X11R6/lib/X11/fonts/Type1" does not exist.
Entry deleted from font path.
(WW) The directory "/usr/X11R6/lib/X11/fonts/100dpi" does not exist.
Entry deleted from font path.
(WW) The directory "/usr/X11R6/lib/X11/fonts/75dpi" does not exist.
Entry deleted from font path.
(WW) The directory "/usr/X11R6/lib/X11/fonts/win" does not exist.
Entry deleted from font path.
(**) FontPath set to:
/usr/share/fonts/X11/misc,
/usr/share/fonts/X11/100dpi/:unscaled,
/usr/share/fonts/X11/75dpi/:unscaled,
/usr/share/fonts/X11/Type1,
/usr/share/fonts/X11/100dpi,
/usr/share/fonts/X11/75dpi,
/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType
(==) RgbPath set to "/etc/X11/rgb"
(==) ModulePath set to "/usr/lib/xorg/modules"
(II) Open ACPI successful (/var/run/acpid.socket)
(II) Module ABI versions:
X.Org ANSI C Emulation: 0.3
X.Org Video Driver: 1.0
X.Org XInput driver : 0.6
X.Org Server Extension : 0.3
X.Org Font Renderer : 0.5
(II) Loader running on linux
(II) LoadModule: "bitmap"
(II) Loading /usr/lib/xorg/modules/fonts/libbitmap.so
(II) Module bitmap: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.0
Module class: X.Org Font Renderer
ABI class: X.Org Font Renderer, version 0.5
(II) Loading font Bitmap
(II) LoadModule: "pcidata"
(II) Loading /usr/lib/xorg/modules/libpcidata.so
(II) Module pcidata: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.0
ABI class: X.Org Video Driver, version 1.0
(++) using VT number 7
(II) PCI: PCI scan (all values are in hex)
(II) PCI: 00:00:0: chip 10de,0444 card 1462,7369 rev a3 class 05,00,00 hdr 00
(II) PCI: 00:01:0: chip 10de,0441 card 1462,7369 rev a3 class 06,01,00 hdr 80
(II) PCI: 00:01:1: chip 10de,0446 card 1462,7369 rev a1 class 0c,05,00 hdr 80
(II) PCI: 00:01:2: chip 10de,0445 card 1462,7369 rev a1 class 05,00,00 hdr 80
(II) PCI: 00:02:0: chip 10de,0454 card 1462,7369 rev a3 class 0c,03,10 hdr 80
(II) PCI: 00:02:1: chip 10de,0455 card 1462,7369 rev a3 class 0c,03,20 hdr 80
(II) PCI: 00:08:0: chip 10de,0449 card 0000,0000 rev a1 class 06,04,01 hdr 01
(II) PCI: 00:09:0: chip 10de,0448 card 1462,7369 rev a1 class 01,01,8a hdr 00
(II) PCI: 00:0a:0: chip 10de,044d card 1462,7369 rev a3 class 01,06,01 hdr 80
(II) PCI: 00:0b:0: chip 10de,045b card 0000,0000 rev a1 class 06,04,00 hdr 01
(II) PCI: 00:0c:0: chip 10de,045a card 0000,0000 rev a1 class 06,04,00 hdr 01
(II) PCI: 00:0d:0: chip 10de,0458 card 0000,0000 rev a1 class 06,04,00 hdr 01
(II) PCI: 00:0e:0: chip 10de,0459 card 0000,0000 rev a1 class 06,04,00 hdr 01
(II) PCI: 00:18:0: chip 1022,1100 card 0000,0000 rev 00 class 06,00,00 hdr 80
(II) PCI: 00:18:1: chip 1022,1101 card 0000,0000 rev 00 class 06,00,00 hdr 80
(II) PCI: 00:18:2: chip 1022,1102 card 0000,0000 rev 00 class 06,00,00 hdr 80
(II) PCI: 00:18:3: chip 1022,1103 card 0000,0000 rev 00 class 06,00,00 hdr 80
(II) PCI: 01:08:0: chip 1106,3106 card 1186,1405 rev 86 class 02,00,00 hdr 00
(II) PCI: 01:09:0: chip 1102,0007 card 1102,1006 rev 00 class 04,01,00 hdr 00
(II) PCI: 01:0a:0: chip 1131,7130 card 1461,2115 rev 01 class 04,80,00 hdr 00
(II) PCI: 03:00:0: chip 10ec,8168 card 1462,369c rev 01 class 02,00,00 hdr 00
(II) PCI: 04:00:0: chip 1002,94c3 card 174b,e400 rev 00 class 03,00,00 hdr 80
(II) PCI: 04:00:1: chip 1002,aa10 card 174b,aa10 rev 00 class 04,03,00 hdr 80
(II) PCI: End of PCI scan
(II) PCI-to-ISA bridge:
(II) Bus -1: bridge is at (0:1:0), (0,-1,-1), BCTRL: 0x0008 (VGA_EN is set)
(II) Subtractive PCI-to-PCI bridge:
(II) Bus 1: bridge is at (0:8:0), (0,1,1), BCTRL: 0x0202 (VGA_EN is cleared)
(II) Bus 1 I/O range:
[0] -1 0 0x0000c000 - 0x0000cfff (0x1000) IX[B]
(II) Bus 1 non-prefetchable memory range:
[0] -1 0 0xfe900000 - 0xfe9fffff (0x100000) MX[B]
(II) Bus 1 prefetchable memory range:
[0] -1 0 0x80000000 - 0x800fffff (0x100000) MX[B]
(II) PCI-to-PCI bridge:
(II) Bus 2: bridge is at (0:11:0), (0,2,2), BCTRL: 0x0002 (VGA_EN is cleared)
(II) PCI-to-PCI bridge:
(II) Bus 3: bridge is at (0:12:0), (0,3,3), BCTRL: 0x0002 (VGA_EN is cleared)
(II) Bus 3 I/O range:
[0] -1 0 0x0000d000 - 0x0000dfff (0x1000) IX[B]
(II) Bus 3 non-prefetchable memory range:
[0] -1 0 0xfea00000 - 0xfeafffff (0x100000) MX[B]
(II) PCI-to-PCI bridge:
(II) Bus 4: bridge is at (0:13:0), (0,4,4), BCTRL: 0x0012 (VGA_EN is cleared)
(II) Bus 4 I/O range:
[0] -1 0 0x0000e000 - 0x0000efff (0x1000) IX[B]
(II) Bus 4 non-prefetchable memory range:
[0] -1 0 0xfeb00000 - 0xfebfffff (0x100000) MX[B]
(II) Bus 4 prefetchable memory range:
[0] -1 0 0xd0000000 - 0xdfffffff (0x10000000) MX[B]
(II) PCI-to-PCI bridge:
(II) Bus 5: bridge is at (0:14:0), (0,5,5), BCTRL: 0x0002 (VGA_EN is cleared)
(II) Host-to-PCI bridge:
(II) Bus 0: bridge is at (0:24:0), (0,0,5), BCTRL: 0x0008 (VGA_EN is set)
(II) Bus 0 I/O range:
[0] -1 0 0x00000000 - 0x0000ffff (0x10000) IX[B]
(II) Bus 0 non-prefetchable memory range:
[0] -1 0 0x00000000 - 0xffffffff (0x100000000) MX[B]
(II) Bus 0 prefetchable memory range:
[0] -1 0 0x00000000 - 0xffffffff (0x100000000) MX[B]
(--) PCI:*(4:0:0) ATI Technologies Inc unknown chipset (0x94c3) rev 0, Mem @ 0xd0000000/28, 0xfebf0000/16, I/O @ 0xe000/8, BIOS @ 0xfebc0000/17
(II) Addressable bus resource ranges are
[0] -1 0 0x00000000 - 0xffffffff (0x100000000) MX[B]
[1] -1 0 0x00000000 - 0x0000ffff (0x10000) IX[B]
(II) OS-reported resource ranges:
[0] -1 0 0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B)
[1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[B]
[2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[B]
[3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[B]
[4] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[B]
[5] -1 0 0x00000000 - 0x000000ff (0x100) IX[B]
(II) Active PCI resource ranges:
[0] -1 0 0xfebec000 - 0xfebeffff (0x4000) MX[B]
[1] -1 0 0xfeaff000 - 0xfeafffff (0x1000) MX[B]
[2] -1 0 0xfe9ff800 - 0xfe9ffbff (0x400) MX[B]
[3] -1 0 0xfe9ffc00 - 0xfe9ffcff (0x100) MX[B]
[4] -1 0 0xfe8fc000 - 0xfe8fdfff (0x2000) MX[B]
[5] -1 0 0xfe8fec00 - 0xfe8fecff (0x100) MX[B]
[6] -1 0 0xfe8ff000 - 0xfe8fffff (0x1000) MX[B]
[7] -1 0 0xfebc0000 - 0xfebdffff (0x20000) MX[B](B)
[8] -1 0 0xfebf0000 - 0xfebfffff (0x10000) MX[B](B)
[9] -1 0 0xd0000000 - 0xdfffffff (0x10000000) MX[B](B)
[10] -1 0 0x0000d800 - 0x0000d8ff (0x100) IX[B]
[11] -1 0 0x0000cc00 - 0x0000cc1f (0x20) IX[B]
[12] -1 0 0x0000c800 - 0x0000c8ff (0x100) IX[B]
[13] -1 0 0x0000a800 - 0x0000a80f (0x10) IX[B]
[14] -1 0 0x00000e00 - 0x00000e03 (0x4) IX[B]
[15] -1 0 0x00000e80 - 0x00000e87 (0x8) IX[B]
[16] -1 0 0x00000f00 - 0x00000f03 (0x4) IX[B]
[17] -1 0 0x00000f80 - 0x00000f87 (0x8) IX[B]
[18] -1 0 0x0000ffa0 - 0x0000ffaf (0x10) IX[B]
[19] -1 0 0x00002e00 - 0x00002e3f (0x40) IX[B]
[20] -1 0 0x00002d00 - 0x00002d3f (0x40) IX[B]
[21] -1 0 0x00002900 - 0x0000293f (0x40) IX[B]
[22] -1 0 0x00002f00 - 0x00002fff (0x100) IX[B]
[23] -1 0 0x0000e000 - 0x0000e0ff (0x100) IX[B](B)
(II) Active PCI resource ranges after removing overlaps:
[0] -1 0 0xfebec000 - 0xfebeffff (0x4000) MX[B]
[1] -1 0 0xfeaff000 - 0xfeafffff (0x1000) MX[B]
[2] -1 0 0xfe9ff800 - 0xfe9ffbff (0x400) MX[B]
[3] -1 0 0xfe9ffc00 - 0xfe9ffcff (0x100) MX[B]
[4] -1 0 0xfe8fc000 - 0xfe8fdfff (0x2000) MX[B]
[5] -1 0 0xfe8fec00 - 0xfe8fecff (0x100) MX[B]
[6] -1 0 0xfe8ff000 - 0xfe8fffff (0x1000) MX[B]
[7] -1 0 0xfebc0000 - 0xfebdffff (0x20000) MX[B](B)
[8] -1 0 0xfebf0000 - 0xfebfffff (0x10000) MX[B](B)
[9] -1 0 0xd0000000 - 0xdfffffff (0x10000000) MX[B](B)
[10] -1 0 0x0000d800 - 0x0000d8ff (0x100) IX[B]
[11] -1 0 0x0000cc00 - 0x0000cc1f (0x20) IX[B]
[12] -1 0 0x0000c800 - 0x0000c8ff (0x100) IX[B]
[13] -1 0 0x0000a800 - 0x0000a80f (0x10) IX[B]
[14] -1 0 0x00000e00 - 0x00000e03 (0x4) IX[B]
[15] -1 0 0x00000e80 - 0x00000e87 (0x8) IX[B]
[16] -1 0 0x00000f00 - 0x00000f03 (0x4) IX[B]
[17] -1 0 0x00000f80 - 0x00000f87 (0x8) IX[B]
[18] -1 0 0x0000ffa0 - 0x0000ffaf (0x10) IX[B]
[19] -1 0 0x00002e00 - 0x00002e3f (0x40) IX[B]
[20] -1 0 0x00002d00 - 0x00002d3f (0x40) IX[B]
[21] -1 0 0x00002900 - 0x0000293f (0x40) IX[B]
[22] -1 0 0x00002f00 - 0x00002fff (0x100) IX[B]
[23] -1 0 0x0000e000 - 0x0000e0ff (0x100) IX[B](B)
(II) OS-reported resource ranges after removing overlaps with PCI:
[0] -1 0 0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B)
[1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[B]
[2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[B]
[3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[B]
[4] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[B]
[5] -1 0 0x00000000 - 0x000000ff (0x100) IX[B]
(II) All system resource ranges:
[0] -1 0 0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B)
[1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[B]
[2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[B]
[3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[B]
[4] -1 0 0xfebec000 - 0xfebeffff (0x4000) MX[B]
[5] -1 0 0xfeaff000 - 0xfeafffff (0x1000) MX[B]
[6] -1 0 0xfe9ff800 - 0xfe9ffbff (0x400) MX[B]
[7] -1 0 0xfe9ffc00 - 0xfe9ffcff (0x100) MX[B]
[8] -1 0 0xfe8fc000 - 0xfe8fdfff (0x2000) MX[B]
[9] -1 0 0xfe8fec00 - 0xfe8fecff (0x100) MX[B]
[10] -1 0 0xfe8ff000 - 0xfe8fffff (0x1000) MX[B]
[11] -1 0 0xfebc0000 - 0xfebdffff (0x20000) MX[B](B)
[12] -1 0 0xfebf0000 - 0xfebfffff (0x10000) MX[B](B)
[13] -1 0 0xd0000000 - 0xdfffffff (0x10000000) MX[B](B)
[14] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[B]
[15] -1 0 0x00000000 - 0x000000ff (0x100) IX[B]
[16] -1 0 0x0000d800 - 0x0000d8ff (0x100) IX[B]
[17] -1 0 0x0000cc00 - 0x0000cc1f (0x20) IX[B]
[18] -1 0 0x0000c800 - 0x0000c8ff (0x100) IX[B]
[19] -1 0 0x0000a800 - 0x0000a80f (0x10) IX[B]
[20] -1 0 0x00000e00 - 0x00000e03 (0x4) IX[B]
[21] -1 0 0x00000e80 - 0x00000e87 (0x8) IX[B]
[22] -1 0 0x00000f00 - 0x00000f03 (0x4) IX[B]
[23] -1 0 0x00000f80 - 0x00000f87 (0x8) IX[B]
[24] -1 0 0x0000ffa0 - 0x0000ffaf (0x10) IX[B]
[25] -1 0 0x00002e00 - 0x00002e3f (0x40) IX[B]
[26] -1 0 0x00002d00 - 0x00002d3f (0x40) IX[B]
[27] -1 0 0x00002900 - 0x0000293f (0x40) IX[B]
[28] -1 0 0x00002f00 - 0x00002fff (0x100) IX[B]
[29] -1 0 0x0000e000 - 0x0000e0ff (0x100) IX[B](B)
(II) LoadModule: "bitmap"
(II) Reloading /usr/lib/xorg/modules/fonts/libbitmap.so
(II) Loading font Bitmap
(II) LoadModule: "ddc"
(II) Loading /usr/lib/xorg/modules/libddc.so
(II) Module ddc: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.0
ABI class: X.Org Video Driver, version 1.0
(II) LoadModule: "extmod"
(II) Loading /usr/lib/xorg/modules/extensions/libextmod.so
(II) Module extmod: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.0.0
Module class: X.Org Server Extension
ABI class: X.Org Server Extension, version 0.3
(II) Loading extension SHAPE
(II) Loading extension MIT-SUNDRY-NONSTANDARD
(II) Loading extension BIG-REQUESTS
(II) Loading extension SYNC
(II) Loading extension MIT-SCREEN-SAVER
(II) Loading extension XC-MISC
(II) Loading extension XFree86-VidModeExtension
(II) Loading extension XFree86-Misc
(II) Loading extension XFree86-DGA
(II) Loading extension DPMS
(II) Loading extension TOG-CUP
(II) Loading extension Extended-Visual-Information
(II) Loading extension XVideo
(II) Loading extension XVideo-MotionCompensation
(II) Loading extension X-Resource
(II) LoadModule: "freetype"
(II) Loading /usr/lib/xorg/modules/fonts/libfreetype.so
(II) Module freetype: vendor="X.Org Foundation & the After X-TT Project"
compiled for 7.1.1, module version = 2.1.0
Module class: X.Org Font Renderer
ABI class: X.Org Font Renderer, version 0.5
(II) Loading font FreeType
(II) LoadModule: "record"
(II) Loading /usr/lib/xorg/modules/extensions/librecord.so
(II) Module record: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.13.0
Module class: X.Org Server Extension
ABI class: X.Org Server Extension, version 0.3
(II) Loading extension RECORD
(II) LoadModule: "v4l"
(II) Loading /usr/lib/xorg/modules/drivers/v4l_drv.so
(II) Module v4l: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 0.1.1
ABI class: X.Org Video Driver, version 1.0
(II) LoadModule: "radeonhd"
(II) Loading /usr/lib/xorg/modules/drivers/radeonhd_drv.so
(II) Module radeonhd: vendor="AMD GPG"
compiled for 7.1.1, module version = 1.1.0
Module class: X.Org Video Driver
ABI class: X.Org Video Driver, version 1.0
(II) LoadModule: "kbd"
(II) Loading /usr/lib/xorg/modules/input/kbd_drv.so
(II) Module kbd: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.1.0
Module class: X.Org XInput Driver
ABI class: X.Org XInput driver, version 0.6
(II) LoadModule: "mouse"
(II) Loading /usr/lib/xorg/modules/input/mouse_drv.so
(II) Module mouse: vendor="X.Org Foundation"
compiled for 7.1.1, module version = 1.1.1
Module class: X.Org XInput Driver
ABI class: X.Org XInput driver, version 0.6
(II) v4l driver for Video4Linux
(II) RADEONHD: X driver for the following AMD GPG (ATI) graphics devices:
RV505 : Radeon X1550, X1550 64bit.
RV515 : Radeon X1300, X1550, X1600; FireGL V3300, V3350.
RV516 : Radeon X1300, X1550, X1550 64-bit, X1600; FireMV 2250.
R520 : Radeon X1800; FireGL V5300, V7200, V7300, V7350.
RV530 : Radeon X1300 XT, X1600, X1600 Pro, X1650; FireGL V3400, V5200.
RV535 : Radeon X1300, X1650.
RV550 : Radeon X2300 HD.
RV560 : Radeon X1650.
RV570 : Radeon X1950, X1950 GT; FireGL V7400.
R580 : Radeon X1900, X1950; AMD Stream Processor.
R600 : Radeon HD 2900 GT/Pro/XT; FireGL V7600/V8600/V8650.
RV610 : Radeon HD 2350, HD 2400 Pro/XT, HD 2400 Pro AGP; FireGL V4000.
RV620 : Radeon HD 3450, HD 3470.
RV630 : Radeon HD 2600 LE/Pro/XT, HD 2600 Pro/XT AGP; Gemini RV630;
FireGL V3600/V5600.
RV635 : Radeon HD 3650, HD 3670.
RV670 : Radeon HD 3690, 3850, HD 3870, FireGL V7700, FireStream 9170.
R680 : Radeon HD 3870 X2.
M52 : Mobility Radeon X1300.
M54 : Mobility Radeon X1400; M54-GL.
M56 : Mobility Radeon X1600; Mobility FireGL V5200.
M58 : Mobility Radeon X1800, X1800 XT; Mobility FireGL V7100, V7200.
M62 : Mobility Radeon X1350.
M64 : Mobility Radeon X1450, X2300.
M66 : Mobility Radeon X1700, X1700 XT; FireGL V5250.
M68 : Mobility Radeon X1900.
M71 : Mobility Radeon HD 2300.
M72 : Mobility Radeon HD 2400; Radeon E2400.
M74 : Mobility Radeon HD 2400 XT.
M76 : Mobility Radeon HD 2600;
(Gemini ATI) Mobility Radeon HD 2600 XT.
M82 : Mobility Radeon HD 3400.
RS600 : Radeon Xpress 1200, Xpress 1250.
RS690 : Radeon X1200, X1250, X1270.
RS780 : Radeon HD 3200 Series.
(II) RADEONHD: version 1.1.0, built from git branch master, commit 5d9a8cb8
(II) Primary Device is: PCI 04:00:0
(--) Assigning device section with no busID to primary device
(--) Chipset RV610 found
(II) resource ranges after xf86ClaimFixedResources() call:
[0] -1 0 0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B)
[1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[B]
[2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[B]
[3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[B]
[4] -1 0 0xfebec000 - 0xfebeffff (0x4000) MX[B]
[5] -1 0 0xfeaff000 - 0xfeafffff (0x1000) MX[B]
[6] -1 0 0xfe9ff800 - 0xfe9ffbff (0x400) MX[B]
[7] -1 0 0xfe9ffc00 - 0xfe9ffcff (0x100) MX[B]
[8] -1 0 0xfe8fc000 - 0xfe8fdfff (0x2000) MX[B]
[9] -1 0 0xfe8fec00 - 0xfe8fecff (0x100) MX[B]
[10] -1 0 0xfe8ff000 - 0xfe8fffff (0x1000) MX[B]
[11] -1 0 0xfebc0000 - 0xfebdffff (0x20000) MX[B](B)
[12] -1 0 0xfebf0000 - 0xfebfffff (0x10000) MX[B](B)
[13] -1 0 0xd0000000 - 0xdfffffff (0x10000000) MX[B](B)
[14] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[B]
[15] -1 0 0x00000000 - 0x000000ff (0x100) IX[B]
[16] -1 0 0x0000d800 - 0x0000d8ff (0x100) IX[B]
[17] -1 0 0x0000cc00 - 0x0000cc1f (0x20) IX[B]
[18] -1 0 0x0000c800 - 0x0000c8ff (0x100) IX[B]
[19] -1 0 0x0000a800 - 0x0000a80f (0x10) IX[B]
[20] -1 0 0x00000e00 - 0x00000e03 (0x4) IX[B]
[21] -1 0 0x00000e80 - 0x00000e87 (0x8) IX[B]
[22] -1 0 0x00000f00 - 0x00000f03 (0x4) IX[B]
[23] -1 0 0x00000f80 - 0x00000f87 (0x8) IX[B]
[24] -1 0 0x0000ffa0 - 0x0000ffaf (0x10) IX[B]
[25] -1 0 0x00002e00 - 0x00002e3f (0x40) IX[B]
[26] -1 0 0x00002d00 - 0x00002d3f (0x40) IX[B]
[27] -1 0 0x00002900 - 0x0000293f (0x40) IX[B]
[28] -1 0 0x00002f00 - 0x00002fff (0x100) IX[B]
[29] -1 0 0x0000e000 - 0x0000e0ff (0x100) IX[B](B)
(II) resource ranges after probing:
[0] -1 0 0x00100000 - 0x3fffffff (0x3ff00000) MX[B]E(B)
[1] -1 0 0x000f0000 - 0x000fffff (0x10000) MX[B]
[2] -1 0 0x000c0000 - 0x000effff (0x30000) MX[B]
[3] -1 0 0x00000000 - 0x0009ffff (0xa0000) MX[B]
[4] -1 0 0xfebec000 - 0xfebeffff (0x4000) MX[B]
[5] -1 0 0xfeaff000 - 0xfeafffff (0x1000) MX[B]
[6] -1 0 0xfe9ff800 - 0xfe9ffbff (0x400) MX[B]
[7] -1 0 0xfe9ffc00 - 0xfe9ffcff (0x100) MX[B]
[8] -1 0 0xfe8fc000 - 0xfe8fdfff (0x2000) MX[B]
[9] -1 0 0xfe8fec00 - 0xfe8fecff (0x100) MX[B]
[10] -1 0 0xfe8ff000 - 0xfe8fffff (0x1000) MX[B]
[11] -1 0 0xfebc0000 - 0xfebdffff (0x20000) MX[B](B)
[12] -1 0 0xfebf0000 - 0xfebfffff (0x10000) MX[B](B)
[13] -1 0 0xd0000000 - 0xdfffffff (0x10000000) MX[B](B)
[14] -1 0 0x0000ffff - 0x0000ffff (0x1) IX[B]
[15] -1 0 0x00000000 - 0x000000ff (0x100) IX[B]
[16] -1 0 0x0000d800 - 0x0000d8ff (0x100) IX[B]
[17] -1 0 0x0000cc00 - 0x0000cc1f (0x20) IX[B]
[18] -1 0 0x0000c800 - 0x0000c8ff (0x100) IX[B]
[19] -1 0 0x0000a800 - 0x0000a80f (0x10) IX[B]
[20] -1 0 0x00000e00 - 0x00000e03 (0x4) IX[B]
[21] -1 0 0x00000e80 - 0x00000e87 (0x8) IX[B]
[22] -1 0 0x00000f00 - 0x00000f03 (0x4) IX[B]
[23] -1 0 0x00000f80 - 0x00000f87 (0x8) IX[B]
[24] -1 0 0x0000ffa0 - 0x0000ffaf (0x10) IX[B]
[25] -1 0 0x00002e00 - 0x00002e3f (0x40) IX[B]
[26] -1 0 0x00002d00 - 0x00002d3f (0x40) IX[B]
[27] -1 0 0x00002900 - 0x0000293f (0x40) IX[B]
[28] -1 0 0x00002f00 - 0x00002fff (0x100) IX[B]
[29] -1 0 0x0000e000 - 0x0000e0ff (0x100) IX[B](B)
(**) RADEONHD(0): Depth 24, (--) framebuffer bpp 32
(**) RADEONHD(0): Selected ShadowFB.
(II) RADEONHD(0): Unknown card detected: 0x94C3:0x174B:0xE400.
If - and only if - your card does not work or does not work optimally
please contact radeonhd(a)opensuse.org to help rectify this.
Use the subject: 0x94C3:0x174B:0xE400: <name of board>
and *please* describe the problems you are seeing
in your message.
(--) RADEONHD(0): Detected an RV610 on an unidentified card
(II) RADEONHD(0): Mapped IO at 0x2b7448d1e000 (size 0x00010000)
(II) RADEONHD(0): Getting BIOS copy from legacy VBIOS location
(II) RADEONHD(0): ATOM BIOS Rom:
SubsystemVendorID: 0x174b SubsystemID: 0xe400
IOBaseAddress: 0xe000
Filename: SR4E4002.001
BIOS Bootup Message:
11x-4E4002-001 RV610 GDDR2_32Mx16 64bit 256MB 525e/400m
(II) RADEONHD(0): Analog TV Default Mode: 8
(II) RADEONHD(0): Found default TV Mode PAL
(--) RADEONHD(0): VideoRAM: 262144 kByte
(II) RADEONHD(0): Framebuffer space used by Firmware (kb): 16
(II) RADEONHD(0): Start of VRAM area used by Firmware: 0xfffc000
(II) RADEONHD(0): AtomBIOS requests 16kB of VRAM scratch space
(II) RADEONHD(0): AtomBIOS VRAM scratch base: 0xfffc000
(II) RADEONHD(0): Default Engine Clock: 525000
(II) RADEONHD(0): Default Memory Clock: 400000
(II) RADEONHD(0): Maximum Pixel ClockPLL Frequency Output: 1200000
(II) RADEONHD(0): Minimum Pixel ClockPLL Frequency Output: 0
(II) RADEONHD(0): Maximum Pixel ClockPLL Frequency Input: 13500
(II) RADEONHD(0): Minimum Pixel ClockPLL Frequency Input: 1000
(II) RADEONHD(0): Maximum Pixel Clock: 400000
(II) RADEONHD(0): Reference Clock: 27000
2
1
I've just created a wiki page, which hopefully(!) resembles the steps to
get working DRI on radeonhd:
http://wiki.x.org/wiki/radeonhd:DRI
It's still in its infant state, so please correct the page, and if
unsure, send a comment to the mailing list.
CU all
Matthias
--
Matthias Hopf <mhopf(a)suse.de> __ __ __
Maxfeldstr. 5 / 90409 Nuernberg (_ | | (_ |__ mat(a)mshopf.de
Phone +49-911-74053-715 __) |_| __) |__ R & D www.mshopf.de
--
To unsubscribe, e-mail: radeonhd+unsubscribe(a)opensuse.org
For additional commands, e-mail: radeonhd+help(a)opensuse.org
3
8
Coleman Kane schreef:
> On Wed, 2008-05-28 at 17:09 +0200, Rene Ladan wrote:
>> 2008/5/28 Coleman Kane <cokane(a)cokane.org>:
>>> On Wed, 2008-05-28 at 16:12 +0200, Rene Ladan wrote:
>>>> 2008/5/28 Coleman Kane <cokane(a)cokane.org>:
>>>>> On Wed, 2008-05-28 at 09:19 -0400, Alex Deucher wrote:
>>>>>> On Wed, May 28, 2008 at 8:59 AM, Vladimir Grebenschikov <vova(a)fbsd.ru> wrote:
>>>>>>> On Wed, 2008-05-28 at 14:39 +0200, Rene Ladan wrote:
>>>>>>>> 2008/5/28 Vladimir Grebenschikov <vova(a)fbsd.ru>:
>>>>>>>>> On Fri, 2008-05-23 at 10:56 -0400, Coleman Kane wrote:
>>>>>>>>>> On Fri, 2008-05-23 at 18:06 +0400, Vladimir Grebenschikov wrote:
>>>>>>>>>>> On Fri, 2008-05-23 at 15:44 +0200, Matthias Hopf wrote:
>>>>>>>>>>>
>>>>>>>>>>> Instruction for FreeBSD will be helpful also, I am not sure what
>>>>>>>> FreeBSD
>>>>>>>>>>> packages to be replaced by drm and mesa ?
>>>>>>>>>> I am currently trying to get this working (with DRI) under FreeBSD.
>>>>>>>> The
>>>>>>>>>> following port is replaced by drm:
>>>>>>>>>> * graphics/libdrm
>>>>>>>>>> * Also, all code under /usr/src/sys/dev/drm
>>>>>>>>>>
>>>>>>>>>> The following are replaced by mesa:
>>>>>>>>>> * graphics/dri
>>>>>>>>>> * graphics/libGL
>>>>>>>>>> * graphics/libGLU
>>>>>>>>>> * graphics/libGLw
>>>>>>>>>> * graphics/mesa-demos
>>>>>>>>>>
>>>>>>>>>> I don't currently have my RS690 working DRI under FreeBSD yet. I
>>>>>>>> just
>>>>>>>>>> recently pulled in the commit to drm that airlied pushed up to
>>>>>>>> enable
>>>>>>>>>> vblank irq on these cards, and my changes have the interrupt
>>>>>>>> working
>>>>>>>>>> properly on FreeBSD, however I am not able to see any GL output on
>>>>>>>> my
>>>>>>>>>> screen.
>>>>>>>>>>
>>>>>>>>>> Everything else acts like it is working, but I just get a black
>>>>>>>> space
>>>>>>>>>> where the GL output should be (like in glxgears). I feel like I'm
>>>>>>>> really
>>>>>>>>>> really close, but I am missing like 1 or 2 key things that the
>>>>>>>> linux
>>>>>>>>>> kmod has...
>>>>>>>>>
>>>>>>>>> I have M54 (Mobile X1400), and want to try run recent driver to
>>>>>>>> check
>>>>>>>>> DRI on it.
>>>>>>>>>
>>>>>>>>> I've build and install libdrm, and drm.ko (from /drm git)
>>>>>>>>>
>>>>>>>>> but I've failed to configure mesa on DRI2PROTO:
>>>>>>>>>
>>>>>>>>> vbook:/home/vova/src/mesa 160_> ./autogen.sh
>>>>>>>>> autoreconf-2.61: Entering directory `.'
>>>>>>>>> autoreconf-2.61: configure.ac: not using Gettext
>>>>>>>>> ...
>>>>>>>>> checking for LIBDRM... yes
>>>>>>>>> checking for DRI2PROTO... configure: error: Package requirements
>>>>>>>>> (dri2proto >= 1.1) were not met:
>>>>>>>>>
>>>>>>>>> No package 'dri2proto' found
>>>>>>>>>
>>>>>>>>> Consider adjusting the PKG_CONFIG_PATH environment variable if you
>>>>>>>>> installed software in a non-standard prefix.
>>>>>>>
>>>>>>> ....
>>>>>>>
>>>>>>>> You should git-clone dri2proto, its web interface is at
>>>>>>>> http://gitweb.freedesktop.org/?p=xorg/proto/dri2proto.git;a=summary
>>>>>>> Thank you, it helps, with proto, but now it requires Expat:
>>>>>>>
>>>>>>> configure:7516: result: no
>>>>>>> configure:7549: checking for expat.h
>>>>>>> configure:7556: result: no
>>>>>>> configure:7563: error: Expat required for DRI.
>>>>>>>
>>>>>>> What is it about ?
>>>>>> The dri config infrastructure requires an xml parser.
>>>>>>
>>>>>> Alex
>>>>>>
>>>>> On freebsd you may need to explicitly tell it to look for the expat.h
>>>>> in /usr/local/include by passing --with-expat=/usr/local to the
>>>>> configure cmdline.
>>>>>
>>>>> --
>>>>> Coleman Kane
>>>>>
>>>>>
>>>> I'm trying to get DRI running on my FreeBSD 7.0R i386 box, but
>>>> 'gmake install' (as root) doesn't work in /mesa (git-clone'd today),
>>>> 'gmake' (as user) works:
>>>> self# pwd
>>>> /usr/home/rene/freebsd/ports/dri_env/mesa
>>>> self# gmake install
>>>> gmake[1]: Entering directory `/usr/home/rene/freebsd/ports/dri_env/mesa/src'
>>>> gmake[2]: Entering directory
>>>> `/usr/home/rene/freebsd/ports/dri_env/mesa/src/glx/x11'
>>>> make -C ../../../src/mesa install-libgl
>>>> "Makefile", line 216: Need an operator
>>>> make: fatal errors encountered -- cannot continue
>>>> gmake[2]: *** [install] Error 1
>>>> gmake[2]: Leaving directory
>>>> `/usr/home/rene/freebsd/ports/dri_env/mesa/src/glx/x11'
>>>> gmake[1]: *** [install] Error 1
>>>> gmake[1]: Leaving directory `/usr/home/rene/freebsd/ports/dri_env/mesa/src'
>>>> gmake: *** [install] Error 1
>>>>
>>> Heh. I forgot about that one...
>>>
>>> Apply the attached patch from your mesa dir:
>>> patch -p1 < fix-dumb-mesa-make-assumption.patch
>>>
>> Thanks, it installs now. I think that officially someone(tm) would
>> have to fix the build
>> infrastructure to install the .pc files into $PREFIX/libdata instead
>> of $PREFIX/lib
>> (the current default for ./configure) ?
>>
>> I've installed drm.ko and friends in /boot/kernel, but I still need to
>> replace the code under /sys/dev/drm,
>> I think the code in both /drm/bsd-core and /drm/shared-core are required?
>>
>> Then recompiling and rebooting the kernel should do the trick _O_ (M64
>> aka X1450)
>>
>> Regards,
>> Rene
>>> --
>>> Coleman Kane
>>>
>
> The fix to make --> $(MAKE) is now in the mesa git tree.
>
> The FreeBSD ports system automatically handles converting the
> lib/pkgconfig -> libdata/pkgconfig stuff when building a port. I have
> taken the shortcut of making /usr/local/lib/pkgconfig a symlink
> to ../libdata/pkgconfig to solve the problem you're describing.
>
DRI basically works on this box too :) (FreeBSD 7.0 release, i386) with
a patched kernel for the drm stuff. I've uploaded some benchmarks to
ftp://rene-ladan.nl/pub/dri/
glxgears does about 500 fps in default size, with a CPU hog of >90%
(dualcore, the other core is idle), and about 50 fps in fullscreen (here
1280x800), with two almost idle cores.
Torcs runs with about 11 fps in fullscreen (24bit, 1280x800, best video
initialization), but it managed to lock up the machine up to the point where
I had to powercycle it. It probably crashed on something, a photograph of
the screen is also present in the ftp directory.
FireFox and thunderbird now repaint dead slow :(, as does xterm. Terminal
(the xfce4 terminal) still runs at a decent speed.
Keep up the good work,
Rene
--
http://www.rene-ladan.nl/
GPG fingerprint = E738 5471 D185 7013 0EE0 4FC8 3C1D 6F83 12E1 84F6 (subkeys.pgp.net)
--
To unsubscribe, e-mail: radeonhd+unsubscribe(a)opensuse.org
For additional commands, e-mail: radeonhd+help(a)opensuse.org
5
5
As written earlier, DRI is now working on RS690. I'm mostly testing
glxgears & torcs so far. Performance is actually pretty decent.
There is still a number of issues remaining, but we're getting closer to
adding this to master. I'd love to update my personal repro, but X.org
is still suffering from the infamous ssl vulnerability issue.
I will post further development on my blog (yep, I have one now as well,
you just cannot escape those nowadays...). Major changes will be posted
to the mailing list as well, of course.
So go and read emmes.livejournal.com
What's missing before we can go to master?
- Some cleanup still has to be done. E.g. function names are still old
style and do not match at all what is used in the remainder of the
driver.
- Some code is still missing (memory map changes etc.)
- Some test on another r5xx GPU would be good.
Happy Weekend
Matthias
--
Matthias Hopf <mhopf(a)suse.de> __ __ __
Maxfeldstr. 5 / 90409 Nuernberg (_ | | (_ |__ mat(a)mshopf.de
Phone +49-911-74053-715 __) |_| __) |__ R & D www.mshopf.de
--
To unsubscribe, e-mail: radeonhd+unsubscribe(a)opensuse.org
For additional commands, e-mail: radeonhd+help(a)opensuse.org
11
46
Christian König wrote:
> You need to install libdrm-dev.
>
> sudo apt-get install libdrm-dev
>
> should fix this.
>
Christian,
That got me further. I found I also needed libgl1-mesa-dev:
sudo apt-get libgl1-mesa-dev
Thanks for the pointer, hope this helps anyone else who is tracking this.
Tony.
> Christian.
>
> Am Dienstag, den 27.05.2008, 23:55 +0100 schrieb Tony Sweeney:
>
>> Adam Williamson wrote:
>>
>>> On Tue, 2008-05-27 at 18:01 +0200, Matthias Hopf wrote:
>>>
>>>
>>>> I just pushed DRI support to master for radeonhd. Yippie!
>>>>
>>>>
>>> Having trouble building this on current Mandriva Cooker (which is not
>>> bleeding edge X.org, in case that's important). Well, I figure it's this
>>> that's breaking, but hey, it could be the scaler or RS780 stuff.
>>> Anyway :) Here's the error:
>>>
>>> In file included from /usr/include/xorg/opaque.h:48,
>>> from /usr/include/xorg/windowstr.h:60,
>>> from /usr/include/xorg/exa.h:36,
>>> from rhd_dri.c:60:
>>> /usr/include/setjmp.h:49: error: conflicting types for 'xf86jmp_buf'
>>> /usr/include/xorg/xf86_libc.h:99: error: previous declaration of 'xf86jmp_buf' was here
>>> /usr/include/setjmp.h:53: error: expected ')' before '==' token
>>> /usr/include/setjmp.h:82: error: conflicting types for 'xf86longjmp'
>>> /usr/include/xorg/xf86_ansic.h:292: error: previous declaration of 'xf86longjmp' was here
>>>
>>> any advice on the best fix? Thanks.
>>>
>>>
>> Also having problems on Ubuntu 8.04 64-bit:
>>
>> sweeney@homunculus:~/xf86-video-radeonhd/build2$ make
>> make all-recursive
>> make[1]: Entering directory `/home/sweeney/xf86-video-radeonhd/build2'
>> Making all in man
>> make[2]: Entering directory `/home/sweeney/xf86-video-radeonhd/build2/man'
>> make[2]: Nothing to be done for `all'.
>> make[2]: Leaving directory `/home/sweeney/xf86-video-radeonhd/build2/man'
>> Making all in src
>> make[2]: Entering directory `/home/sweeney/xf86-video-radeonhd/build2/src'
>> /bin/bash ../.././git_version.sh -k -s ../../. -o git_version.h
>> git_version.sh: Output is unchanged, keeping git_version.h
>> make all-am
>> make[3]: Entering directory `/home/sweeney/xf86-video-radeonhd/build2/src'
>> /bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I.
>> -I../.././src -I.. -I../.././src/AtomBios/includes -I/usr/include/xorg
>> -I/usr/include/pixman-1 -Wall -Wextra -Wno-unused-parameter
>> -Werror-implicit-function-declaration -Wstrict-aliasing
>> -Wstrict-overflow -Wpointer-arith -Woverlength-strings
>> -Wvolatile-register-var -Winit-self -Wbad-function-cast
>> -Wstrict-prototypes -Wold-style-definition -Wnested-externs
>> -Wdisabled-optimization -pedantic -Wno-long-long -Wno-variadic-macros -g
>> -O2 -finline-functions -MT radeonhd_drv_la-rhd_driver.lo -MD -MP -MF
>> .deps/radeonhd_drv_la-rhd_driver.Tpo -c -o radeonhd_drv_la-rhd_driver.lo
>> `test -f 'rhd_driver.c' || echo '../.././src/'`rhd_driver.c
>> gcc -DHAVE_CONFIG_H -I. -I../.././src -I..
>> -I../.././src/AtomBios/includes -I/usr/include/xorg
>> -I/usr/include/pixman-1 -Wall -Wextra -Wno-unused-parameter
>> -Werror-implicit-function-declaration -Wstrict-aliasing
>> -Wstrict-overflow -Wpointer-arith -Woverlength-strings
>> -Wvolatile-register-var -Winit-self -Wbad-function-cast
>> -Wstrict-prototypes -Wold-style-definition -Wnested-externs
>> -Wdisabled-optimization -pedantic -Wno-long-long -Wno-variadic-macros -g
>> -O2 -finline-functions -MT radeonhd_drv_la-rhd_driver.lo -MD -MP -MF
>> .deps/radeonhd_drv_la-rhd_driver.Tpo -c ../.././src/rhd_driver.c -fPIC
>> -DPIC -o .libs/radeonhd_drv_la-rhd_driver.o
>> In file included from /usr/include/xorg/miscstruct.h:54,
>> from /usr/include/xorg/regionstr.h:53,
>> from /usr/include/xorg/region.h:51,
>> from /usr/include/xorg/window.h:52,
>> from /usr/include/xorg/input.h:55,
>> from /usr/include/xorg/xf86str.h:38,
>> from /usr/include/xorg/xf86.h:45,
>> from ../.././src/rhd_driver.c:35:
>> /usr/include/pixman-1/pixman.h:504: warning: comma at end of enumerator list
>> In file included from /usr/include/xorg/glyphstr.h:29,
>> from /usr/include/xorg/picturestr.h:28,
>> from /usr/include/xorg/fb.h:44,
>> from ../.././src/rhd_driver.c:67:
>> /usr/include/xorg/picture.h:119: warning: comma at end of enumerator list
>> In file included from ../.././src/rhd_dri.h:33,
>> from ../.././src/rhd_driver.c:115:
>> /usr/include/GL/glxint.h:28:19: error: GL/gl.h: No such file or directory
>> In file included from ../.././src/rhd_dri.h:33,
>> from ../.././src/rhd_driver.c:115:
>> /usr/include/GL/glxint.h:95: error: expected specifier-qualifier-list
>> before ‘GLboolean’
>> In file included from ../.././src/rhd_driver.c:115:
>> ../.././src/rhd_dri.h:34:21: error: xf86drm.h: No such file or directory
>> make[3]: *** [radeonhd_drv_la-rhd_driver.lo] Error 1
>> make[3]: Leaving directory `/home/sweeney/xf86-video-radeonhd/build2/src'
>> make[2]: *** [all] Error 2
>> make[2]: Leaving directory `/home/sweeney/xf86-video-radeonhd/build2/src'
>> make[1]: *** [all-recursive] Error 1
>> make[1]: Leaving directory `/home/sweeney/xf86-video-radeonhd/build2'
>> make: *** [all] Error 2
>> sweeney@homunculus:~/xf86-video-radeonhd/build2$
>>
>> The problem did not manifest when I pulled and built the RS780 code
>> yesterday (which works great, incidentally, thanks Egbert!). I made a
>> fresh build directory (build2 above) and reran autogen.sh to make sure I
>> was getting a clean build. I have the standard Xorg development packages
>> installed, radeonhd is the only package I am trying to build from source.
>>
>> Tony.
>>
>
>
>
--
To unsubscribe, e-mail: radeonhd+unsubscribe(a)opensuse.org
For additional commands, e-mail: radeonhd+help(a)opensuse.org
3
4
Reporting from xf86-video-radeonhd: Radeon HD video driver
Please visit:
http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-radeonhd
Or get your own copy by using:
git-clone git://anongit.freedesktop.org/xorg/driver/xf86-video-radeonhd
Commit against master at ffc4fc1d...:
commit 90ef4fd7cff7d8d6f77c9e5d864bc4db5c76cf99
Author: Matthias Hopf <mhopf(a)suse.de>
Date: Thu May 29 15:07:11 2008 +0200
Fix build process with DRI disabled.
diffstat:
configure.ac | 5 +++++
src/rhd_driver.c | 20 ++++++++++++++++----
2 files changed, 21 insertions(+), 4 deletions(-)
gitweb url:
http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-radeonhd;a=commit;h…
--
To unsubscribe, e-mail: radeonhd+unsubscribe(a)opensuse.org
For additional commands, e-mail: radeonhd+help(a)opensuse.org
1
0
Reporting from xf86-video-radeonhd: Radeon HD video driver
Please visit:
http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-radeonhd
Or get your own copy by using:
git-clone git://anongit.freedesktop.org/xorg/driver/xf86-video-radeonhd
Commit against master at 9ce56cd3...:
commit ffc4fc1dde616fe7d5deecec206af72ebcb3a4a9
Author: Egbert Eich <eich(a)freedesktop.org>
Date: Thu May 29 11:43:57 2008 +0200
MC: Mark local functions static.
This was on oversight - oops.
diffstat:
src/rhd_mc.c | 116 +++++++++++++++++++++++++++----------------------------
1 file changed, 58 insertions(+), 58 deletions(-)
gitweb url:
http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-radeonhd;a=commit;h…
--
To unsubscribe, e-mail: radeonhd+unsubscribe(a)opensuse.org
For additional commands, e-mail: radeonhd+help(a)opensuse.org
1
0