rpms/xorg-x11-drv-ati/F-8 .cvsignore, 1.20, 1.21 radeon-git-upstream-fixes.patch, 1.1, 1.2 sources, 1.20, 1.21 xorg-x11-drv-ati.spec, 1.66, 1.67
Dave Airlie (airlied)
fedora-extras-commits at redhat.com
Mon Nov 19 00:14:04 UTC 2007
Author: airlied
Update of /cvs/pkgs/rpms/xorg-x11-drv-ati/F-8
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv14258
Modified Files:
.cvsignore radeon-git-upstream-fixes.patch sources
xorg-x11-drv-ati.spec
Log Message:
* Mon Nov 19 2007 Dave Airlie <airlied at redhat.com> 6.7.196-1
- rebase to 6.7.196 upstream + fixes from git
Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/F-8/.cvsignore,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- .cvsignore 6 Oct 2007 18:20:36 -0000 1.20
+++ .cvsignore 19 Nov 2007 00:13:28 -0000 1.21
@@ -1 +1 @@
-xf86-video-ati-6.7.195.tar.bz2
+xf86-video-ati-6.7.196.tar.bz2
radeon-git-upstream-fixes.patch:
Index: radeon-git-upstream-fixes.patch
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/F-8/radeon-git-upstream-fixes.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- radeon-git-upstream-fixes.patch 16 Oct 2007 02:28:19 -0000 1.1
+++ radeon-git-upstream-fixes.patch 19 Nov 2007 00:13:28 -0000 1.2
@@ -1,805 +1,123 @@
diff --git a/configure.ac b/configure.ac
-index 5f18d2b..5216eff 100644
+index 450d951..b3d46a5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -79,7 +79,7 @@ sdkdir=$(pkg-config --variable=sdkdir xorg-server)
# Checks for header files.
AC_HEADER_STDC
--if test "$DRI" != no; then
-+if test "x$DRI" = xauto; then
+-if test "x$DRI" = xauto; then
++if test "$DRI" != no; then
AC_CHECK_FILE([${sdkdir}/dri.h],
[have_dri_h="yes"], [have_dri_h="no"])
AC_CHECK_FILE([${sdkdir}/sarea.h],
-diff --git a/man/radeon.man b/man/radeon.man
-index 35dd701..9168254 100644
---- a/man/radeon.man
-+++ b/man/radeon.man
-@@ -383,6 +383,14 @@ case. This is only useful for LVDS panels (laptop internal panels).
- The default is
- .B on.
- .TP
-+.BI "Option \*qLVDSBiosNativeMode\*q \*q" boolean \*q
-+On some laptops, the LVDS mode from the timing tables in the bios does
-+not work properly. In those cases, a CVT mode seems to work better.
-+If you get a blank screen or have LVDS display problems, disable this
-+option to use a CVT mode.
-+The default is
-+.B on.
-+.TP
- .BI "Option \*qDRI\*q \*q" boolean \*q
- Enable DRI support. This option allows you to enable to disable the DRI.
- The default is
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 1eea432..ff1e225 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -66,6 +66,17 @@ atimisc_drv_la_SOURCES = \
- atiload.c atimisc.c atimach64probe.c $(ATIMISC_CPIO_SOURCES) \
- $(ATIMISC_DGA_SOURCES) $(ATIMISC_DRI_SRCS) $(ATIMISC_EXA_SOURCES)
-
-+if XSERVER_LIBPCIACCESS
-+# r128 has not been ported yet
-+else
-+r128_drv_la_LTLIBRARIES = r128_drv.la
-+r128_drv_la_LDFLAGS = -module -avoid-version
-+r128_drv_ladir = @moduledir@/drivers
-+r128_drv_la_SOURCES = \
-+ r128_accel.c r128_cursor.c r128_dga.c r128_driver.c \
-+ r128_video.c r128_misc.c r128_probe.c $(R128_DRI_SRCS)
-+endif
-+
- radeon_drv_la_LTLIBRARIES = radeon_drv.la
- radeon_drv_la_LDFLAGS = -module -avoid-version
- radeon_drv_ladir = @moduledir@/drivers
-@@ -76,16 +87,6 @@ radeon_drv_la_SOURCES = \
- radeon_crtc.c radeon_output.c radeon_modes.c radeon_tv.c \
- $(RADEON_DRI_SRCS) $(RADEON_EXA_SOURCES)
-
--if XSERVER_LIBPCIACCESS
--# r128 and theatre have not been ported yet
--else
--r128_drv_la_LTLIBRARIES = r128_drv.la
--r128_drv_la_LDFLAGS = -module -avoid-version
--r128_drv_ladir = @moduledir@/drivers
--r128_drv_la_SOURCES = \
-- r128_accel.c r128_cursor.c r128_dga.c r128_driver.c \
-- r128_video.c r128_misc.c r128_probe.c $(R128_DRI_SRCS)
--
- theatre_detect_drv_la_LTLIBRARIES = theatre_detect_drv.la
- theatre_detect_drv_la_LDFLAGS = -module -avoid-version
- theatre_detect_drv_ladir = @moduledir@/multimedia
-@@ -106,7 +107,6 @@ theatre200_drv_la_CFLAGS = \
- $(AM_CFLAGS) -DMICROC_DIR=\"$(theatre200_drv_ladir)\"
- theatre200_drv_la_SOURCES = \
- theatre200.c theatre200_module.c
--endif
-
- EXTRA_DIST = \
- atimach64render.c \
-diff --git a/src/atiprint.c b/src/atiprint.c
-index 60d9c21..3a1debb 100644
---- a/src/atiprint.c
-+++ b/src/atiprint.c
-@@ -26,6 +26,7 @@
-
- #include <string.h>
- #include <ctype.h>
-+#include <stdint.h>
-
- #include "ati.h"
- #include "atichip.h"
-diff --git a/src/atiprobe.c b/src/atiprobe.c
-index 78b3edd..38ce90d 100644
---- a/src/atiprobe.c
-+++ b/src/atiprobe.c
-@@ -26,6 +26,7 @@
-
- #include <string.h>
- #include <stdio.h>
-+#include <stdint.h>
-
- #include "ati.h"
- #include "atibus.h"
-diff --git a/src/radeon.h b/src/radeon.h
-index ad94cc5..6ee43b2 100644
---- a/src/radeon.h
-+++ b/src/radeon.h
-@@ -157,7 +157,8 @@ typedef enum {
- #if defined(__powerpc__)
- OPTION_MAC_MODEL,
- #endif
-- OPTION_DEFAULT_TMDS_PLL
-+ OPTION_DEFAULT_TMDS_PLL,
-+ OPTION_LVDS_BIOS_NATIVE_MODE
- } RADEONOpts;
-
-
-@@ -816,6 +817,8 @@ typedef struct {
- RADEONMacModel MacModel;
- #endif
-
-+ Bool LVDSBiosNativeMode;
-+
- Rotation rotation;
- void (*PointerMoved)(int, int, int);
- CreateScreenResourcesProcPtr CreateScreenResources;
-@@ -910,6 +913,8 @@ extern void RADEONRestoreFP2Registers(ScrnInfoPtr pScrn,
- RADEONSavePtr restore);
- extern void RADEONRestoreLVDSRegisters(ScrnInfoPtr pScrn,
- RADEONSavePtr restore);
-+extern void RADEONRestoreBIOSRegisters(ScrnInfoPtr pScrn,
-+ RADEONSavePtr restore);
- extern void RADEONRestoreRMXRegisters(ScrnInfoPtr pScrn,
- RADEONSavePtr restore);
- extern void RADEONRestorePLLRegisters(ScrnInfoPtr pScrn,
-diff --git a/src/radeon_bios.c b/src/radeon_bios.c
-index 65c2bb0..1b46746 100644
---- a/src/radeon_bios.c
-+++ b/src/radeon_bios.c
-@@ -176,6 +176,9 @@ static Bool RADEONGetATOMConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
- case RADEON_LCD_GPIO_MASK:
- info->BiosConnector[i].DDCType = DDC_LCD;
- break;
-+ case RADEON_MDGPIO_EN_REG:
-+ info->BiosConnector[i].DDCType = DDC_GPIO;
-+ break;
- default:
- info->BiosConnector[i].DDCType = DDC_NONE_DETECTED;
- break;
-@@ -254,6 +257,23 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
- info->BiosConnector[i].DDCType = DDC_MONID;
- }
-
-+ /* XPRESS desktop chips seem to have a proprietary connector listed for
-+ * DVI-D, try and do the right thing here.
-+ */
-+ if ((!info->IsMobility) &&
-+ (info->BiosConnector[i].ConnectorType == CONNECTOR_PROPRIETARY)) {
-+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-+ "Proprietary connector found, assuming DVI-D\n");
-+ info->BiosConnector[i].DACType = DAC_NONE;
-+ info->BiosConnector[i].TMDSType = TMDS_EXT;
-+ info->BiosConnector[i].ConnectorType = CONNECTOR_DVI_D;
-+ }
-+
-+ if (info->BiosConnector[i].ConnectorType >= CONNECTOR_UNSUPPORTED) {
-+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "Unknown connector type: %d!\n",
-+ info->BiosConnector[i].ConnectorType);
-+ info->BiosConnector[i].valid = FALSE;
-+ }
-
- }
- } else {
-@@ -277,7 +297,7 @@ static Bool RADEONGetLegacyConnectorInfoFromBIOS (ScrnInfoPtr pScrn)
- tmp1 = RADEON_BIOS8(tmp0+2) & 0x07;
- if (tmp1) {
- info->BiosConnector[4].DDCType = tmp1;
-- if (info->BiosConnector[4].DDCType > DDC_LCD) {
-+ if (info->BiosConnector[4].DDCType > DDC_GPIO) {
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
- "Unknown DDCType %d found\n",
- info->BiosConnector[4].DDCType);
-diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
-index 47e46f3..eeb1c6c 100644
---- a/src/radeon_crtc.c
-+++ b/src/radeon_crtc.c
-@@ -311,7 +311,7 @@ RADEONInitCrtcRegisters(xf86CrtcPtr crtc, RADEONSavePtr save,
- return FALSE;
- }
-
-- save->bios_4_scratch = info->SavedReg.bios_4_scratch;
-+ /*save->bios_4_scratch = info->SavedReg.bios_4_scratch;*/
- save->crtc_gen_cntl = (RADEON_CRTC_EXT_DISP_EN
- | RADEON_CRTC_EN
- | (format << 8)
-@@ -348,11 +348,10 @@ RADEONInitCrtcRegisters(xf86CrtcPtr crtc, RADEONSavePtr save,
-
- hsync_wid = (mode->CrtcHSyncEnd - mode->CrtcHSyncStart) / 8;
- if (!hsync_wid) hsync_wid = 1;
-- if (hsync_wid > 0x3f) hsync_wid = 0x3f;
- hsync_start = mode->CrtcHSyncStart - 8;
-
- save->crtc_h_sync_strt_wid = ((hsync_start & 0x1fff)
-- | (hsync_wid << 16)
-+ | ((hsync_wid & 0x3f) << 16)
- | ((mode->Flags & V_NHSYNC)
- ? RADEON_CRTC_H_SYNC_POL
- : 0));
-@@ -363,10 +362,9 @@ RADEONInitCrtcRegisters(xf86CrtcPtr crtc, RADEONSavePtr save,
-
- vsync_wid = mode->CrtcVSyncEnd - mode->CrtcVSyncStart;
- if (!vsync_wid) vsync_wid = 1;
-- if (vsync_wid > 0x1f) vsync_wid = 0x1f;
-
- save->crtc_v_sync_strt_wid = (((mode->CrtcVSyncStart - 1) & 0xfff)
-- | (vsync_wid << 16)
-+ | ((vsync_wid & 0x1f) << 16)
- | ((mode->Flags & V_NVSYNC)
- ? RADEON_CRTC_V_SYNC_POL
- : 0));
-@@ -545,11 +543,10 @@ RADEONInitCrtc2Registers(xf86CrtcPtr crtc, RADEONSavePtr save,
-
- hsync_wid = (mode->CrtcHSyncEnd - mode->CrtcHSyncStart) / 8;
- if (!hsync_wid) hsync_wid = 1;
-- if (hsync_wid > 0x3f) hsync_wid = 0x3f;
- hsync_start = mode->CrtcHSyncStart - 8;
-
- save->crtc2_h_sync_strt_wid = ((hsync_start & 0x1fff)
-- | (hsync_wid << 16)
-+ | ((hsync_wid & 0x3f) << 16)
- | ((mode->Flags & V_NHSYNC)
- ? RADEON_CRTC_H_SYNC_POL
- : 0));
-@@ -560,10 +557,9 @@ RADEONInitCrtc2Registers(xf86CrtcPtr crtc, RADEONSavePtr save,
-
- vsync_wid = mode->CrtcVSyncEnd - mode->CrtcVSyncStart;
- if (!vsync_wid) vsync_wid = 1;
-- if (vsync_wid > 0x1f) vsync_wid = 0x1f;
-
- save->crtc2_v_sync_strt_wid = (((mode->CrtcVSyncStart - 1) & 0xfff)
-- | (vsync_wid << 16)
-+ | ((vsync_wid & 0x1f) << 16)
- | ((mode->Flags & V_NVSYNC)
- ? RADEON_CRTC2_V_SYNC_POL
- : 0));
-@@ -768,6 +764,18 @@ RADEONInitPLL2Registers(ScrnInfoPtr pScrn, RADEONSavePtr save,
+diff --git a/src/radeon_dri.c b/src/radeon_dri.c
+index 2c533b1..ed418b8 100644
+--- a/src/radeon_dri.c
++++ b/src/radeon_dri.c
+@@ -722,7 +722,9 @@ static Bool RADEONSetAgpMode(RADEONInfoPtr info, ScreenPtr pScreen)
+ unsigned long mode = drmAgpGetMode(info->drmFD); /* Default mode */
+ unsigned int vendor = drmAgpVendorId(info->drmFD);
+ unsigned int device = drmAgpDeviceId(info->drmFD);
+- CARD32 agp_status = INREG(RADEON_AGP_STATUS) & mode;
++ /* ignore agp 3.0 mode bit from the chip as it's buggy on some cards with
++ pcie-agp rialto bridge chip - use the one from bridge which must match */
++ CARD32 agp_status = (INREG(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) & mode;
+ Bool is_v3 = (agp_status & RADEON_AGPv3_MODE);
+ unsigned int defaultMode;
+ MessageType from;
+diff --git a/src/radeon_output.c b/src/radeon_output.c
+index 599a89c..54c27cd 100644
+--- a/src/radeon_output.c
++++ b/src/radeon_output.c
+@@ -1039,11 +1039,12 @@ static void RADEONInitDACRegisters(xf86OutputPtr output, RADEONSavePtr save,
+ save->dac_macro_cntl = info->SavedReg.dac_macro_cntl;
}
+-/* XXX: fix me */
static void
-+RADEONInitBIOSRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
-+{
-+ RADEONInfoPtr info = RADEONPTR(pScrn);
-+
-+ /* tell the bios not to muck with the hardware on events */
-+ save->bios_4_scratch = 0;
-+ save->bios_5_scratch = 0xff00;
-+ save->bios_6_scratch = info->SavedReg.bios_6_scratch | 0x40000000;
-+
-+}
-+
-+static void
- radeon_update_tv_routing(ScrnInfoPtr pScrn, RADEONSavePtr restore)
+-RADEONInitTvDacCntl(ScrnInfoPtr pScrn, RADEONSavePtr save)
++RADEONInitTvDacCntl(xf86OutputPtr output, RADEONSavePtr save)
{
- /* pixclks_cntl controls tv clock routing */
-@@ -813,6 +821,9 @@ radeon_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
- }
- }
-
-+ if (info->IsMobility)
-+ RADEONInitBIOSRegisters(pScrn, &info->ModeReg);
-+
- ErrorF("init memmap\n");
- RADEONInitMemMapRegisters(pScrn, &info->ModeReg, info);
- ErrorF("init common\n");
-@@ -868,6 +879,9 @@ radeon_crtc_mode_set(xf86CrtcPtr crtc, DisplayModePtr mode,
- }
- }
-
-+ if (info->IsMobility)
-+ RADEONRestoreBIOSRegisters(pScrn, &info->ModeReg);
-+
- ErrorF("restore memmap\n");
- RADEONRestoreMemMapRegisters(pScrn, &info->ModeReg);
- ErrorF("restore common\n");
-diff --git a/src/radeon_driver.c b/src/radeon_driver.c
-index 03f531e..40e1d98 100644
---- a/src/radeon_driver.c
-+++ b/src/radeon_driver.c
-@@ -190,6 +190,7 @@ static const OptionInfoRec RADEONOptions[] = {
- #if defined(__powerpc__)
- { OPTION_MAC_MODEL, "MacModel", OPTV_STRING, {0}, FALSE },
- #endif
-+ { OPTION_LVDS_BIOS_NATIVE_MODE, "LVDSBiosNativeMode", OPTV_BOOLEAN, {0}, TRUE },
- { -1, NULL, OPTV_NONE, {0}, FALSE }
- };
-
-@@ -4235,14 +4236,27 @@ void RADEONRestoreLVDSRegisters(ScrnInfoPtr pScrn, RADEONSavePtr restore)
-
- if (info->IsMobility) {
- OUTREG(RADEON_LVDS_GEN_CNTL, restore->lvds_gen_cntl);
-- OUTREG(RADEON_LVDS_PLL_CNTL, restore->lvds_pll_cntl);
-- /*OUTREG(RADEON_BIOS_4_SCRATCH, restore->bios_4_scratch);
-- OUTREG(RADEON_BIOS_5_SCRATCH, restore->bios_5_scratch);
-- OUTREG(RADEON_BIOS_6_SCRATCH, restore->bios_6_scratch);*/
-+ OUTREG(RADEON_LVDS_PLL_CNTL, restore->lvds_pll_cntl);
- }
++ ScrnInfoPtr pScrn = output->scrn;
+ RADEONInfoPtr info = RADEONPTR(pScrn);
++ RADEONOutputPrivatePtr radeon_output = output->driver_private;
+
+ if (info->ChipFamily == CHIP_FAMILY_R420 ||
+ info->ChipFamily == CHIP_FAMILY_RV410) {
+@@ -1064,10 +1065,11 @@ RADEONInitTvDacCntl(ScrnInfoPtr pScrn, RADEONSavePtr save)
+ RADEON_TV_DAC_GDACPD |
+ RADEON_TV_DAC_GDACPD);
+ }
+- /* FIXME: doesn't make sense, this just replaces the previous value... */
++
+ save->tv_dac_cntl |= (RADEON_TV_DAC_NBLANK |
+- RADEON_TV_DAC_NHOLD |
+- RADEON_TV_DAC_STD_PS2);
++ RADEON_TV_DAC_NHOLD |
++ RADEON_TV_DAC_STD_PS2 |
++ radeon_output->tv_dac_adj);
}
-+void RADEONRestoreBIOSRegisters(ScrnInfoPtr pScrn, RADEONSavePtr restore)
-+{
-+ RADEONInfoPtr info = RADEONPTR(pScrn);
-+ unsigned char *RADEONMMIO = info->MMIO;
-+ CARD32 bios_6_scratch = INREG(RADEON_BIOS_6_SCRATCH);
-+
-+ OUTREG(RADEON_BIOS_4_SCRATCH, restore->bios_4_scratch);
-+ OUTREG(RADEON_BIOS_5_SCRATCH, restore->bios_5_scratch);
-+ if (restore->bios_6_scratch & 0x40000000)
-+ bios_6_scratch |= 0x40000000;
-+ else
-+ bios_6_scratch &= ~0x40000000;
-+ OUTREG(RADEON_BIOS_6_SCRATCH, bios_6_scratch);
-+
-+}
-+
- /* Write to TV FIFO RAM */
- static void RADEONWriteTVFIFO(ScrnInfoPtr pScrn, CARD16 addr,
- CARD32 value)
-@@ -5082,6 +5096,16 @@ static void RADEONSaveDACRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
+@@ -1078,7 +1080,7 @@ static void RADEONInitDAC2Registers(xf86OutputPtr output, RADEONSavePtr save,
+ RADEONInfoPtr info = RADEONPTR(pScrn);
- }
-
-+static void RADEONSaveBIOSRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
-+{
-+ RADEONInfoPtr info = RADEONPTR(pScrn);
-+ unsigned char *RADEONMMIO = info->MMIO;
-+
-+ save->bios_4_scratch = INREG(RADEON_BIOS_4_SCRATCH);
-+ save->bios_5_scratch = INREG(RADEON_BIOS_5_SCRATCH);
-+ save->bios_6_scratch = INREG(RADEON_BIOS_6_SCRATCH);
-+}
-+
- /* Read flat panel registers */
- static void RADEONSaveFPRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
- {
-@@ -5096,9 +5120,6 @@ static void RADEONSaveFPRegisters(ScrnInfoPtr pScrn, RADEONSavePtr save)
- save->lvds_pll_cntl = INREG(RADEON_LVDS_PLL_CNTL);
- save->tmds_pll_cntl = INREG(RADEON_TMDS_PLL_CNTL);
- save->tmds_transmitter_cntl= INREG(RADEON_TMDS_TRANSMITTER_CNTL);
-- save->bios_4_scratch = INREG(RADEON_BIOS_4_SCRATCH);
-- save->bios_5_scratch = INREG(RADEON_BIOS_5_SCRATCH);
-- save->bios_6_scratch = INREG(RADEON_BIOS_6_SCRATCH);
-
- if (info->ChipFamily == CHIP_FAMILY_RV280) {
- /* bit 22 of TMDS_PLL_CNTL is read-back inverted */
-@@ -5325,7 +5346,7 @@ static void RADEONSave(ScrnInfoPtr pScrn)
- vgaHWSave(pScrn, &hwp->SavedReg, VGA_SR_MODE); /* Save mode only */
- # else
- /* Save mode * & fonts & cmap */
-- vgaHWSave(pScrn, &hwp->SavedReg, VGA_SR_MODE | VGA_SR_FONTS);
-+ vgaHWSave(pScrn, &hwp->SavedReg, VGA_SR_ALL);
- # endif
- vgaHWLock(hwp);
- }
-@@ -5340,6 +5361,7 @@ static void RADEONSave(ScrnInfoPtr pScrn)
- RADEONSavePLLRegisters(pScrn, save);
- RADEONSaveCrtcRegisters(pScrn, save);
- RADEONSaveFPRegisters(pScrn, save);
-+ RADEONSaveBIOSRegisters(pScrn, save);
- RADEONSaveDACRegisters(pScrn, save);
- if (pRADEONEnt->HasCRTC2) {
- RADEONSaveCrtc2Registers(pScrn, save);
-@@ -5386,6 +5408,7 @@ void RADEONRestore(ScrnInfoPtr pScrn)
- RADEONRestorePLL2Registers(pScrn, restore);
- }
-
-+ RADEONRestoreBIOSRegisters(pScrn, restore);
- RADEONRestoreCrtcRegisters(pScrn, restore);
- RADEONRestorePLLRegisters(pScrn, restore);
- RADEONRestoreRMXRegisters(pScrn, restore);
-@@ -5417,7 +5440,7 @@ void RADEONRestore(ScrnInfoPtr pScrn)
- */
- vgaHWRestore(pScrn, &hwp->SavedReg, VGA_SR_MODE );
- # else
-- vgaHWRestore(pScrn, &hwp->SavedReg, VGA_SR_MODE | VGA_SR_FONTS );
-+ vgaHWRestore(pScrn, &hwp->SavedReg, VGA_SR_ALL );
- # endif
- vgaHWLock(hwp);
- }
-diff --git a/src/radeon_modes.c b/src/radeon_modes.c
-index ea2c229..e01c1e1 100644
---- a/src/radeon_modes.c
-+++ b/src/radeon_modes.c
-@@ -95,20 +95,45 @@ static DisplayModePtr RADEONTVModes(xf86OutputPtr output)
- static DisplayModePtr RADEONFPNativeMode(xf86OutputPtr output)
- {
- ScrnInfoPtr pScrn = output->scrn;
-+ RADEONInfoPtr info = RADEONPTR(pScrn);
- RADEONOutputPrivatePtr radeon_output = output->driver_private;
- DisplayModePtr new = NULL;
-+ char stmp[32];
-
- if (radeon_output->PanelXRes != 0 &&
- radeon_output->PanelYRes != 0 &&
- radeon_output->DotClock != 0) {
-
-- /* Add native panel size */
-- new = xf86CVTMode(radeon_output->PanelXRes, radeon_output->PanelYRes, 60.0, TRUE, FALSE);
-+ if (info->LVDSBiosNativeMode) {
-+ new = xnfcalloc(1, sizeof (DisplayModeRec));
-+ sprintf(stmp, "%dx%d", radeon_output->PanelXRes, radeon_output->PanelYRes);
-+ new->name = xnfalloc(strlen(stmp) + 1);
-+ strcpy(new->name, stmp);
-+ new->HDisplay = radeon_output->PanelXRes;
-+ new->VDisplay = radeon_output->PanelYRes;
-
-- new->type = M_T_DRIVER | M_T_PREFERRED;
-+ new->HTotal = new->HDisplay + radeon_output->HBlank;
-+ new->HSyncStart = new->HDisplay + radeon_output->HOverPlus;
-+ new->HSyncEnd = new->HSyncStart + radeon_output->HSyncWidth;
-+ new->VTotal = new->VDisplay + radeon_output->VBlank;
-+ new->VSyncStart = new->VDisplay + radeon_output->VOverPlus;
-+ new->VSyncEnd = new->VSyncStart + radeon_output->VSyncWidth;
-
-- new->next = NULL;
-- new->prev = NULL;
-+ new->Clock = radeon_output->DotClock;
-+ new->Flags = 0;
-+
-+ } else {
-+ /* Add native panel size */
-+ new = xf86CVTMode(radeon_output->PanelXRes, radeon_output->PanelYRes, 60.0, FALSE, FALSE);
-+
-+ }
-+
-+ if (new) {
-+ new->type = M_T_DRIVER | M_T_PREFERRED;
-+
-+ new->next = NULL;
-+ new->prev = NULL;
-+ }
-
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Added native panel mode: %dx%d\n",
- radeon_output->PanelXRes, radeon_output->PanelYRes);
-@@ -159,7 +184,7 @@ static void RADEONAddScreenModes(xf86OutputPtr output, DisplayModePtr *modeList)
- }
- }
-
-- new = xf86CVTMode(width, height, 60.0, TRUE, FALSE);
-+ new = xf86CVTMode(width, height, 60.0, FALSE, FALSE);
-
- new->type |= M_T_USERDEF;
-
-@@ -199,11 +224,13 @@ RADEONProbeOutputModes(xf86OutputPtr output)
-
- if (output->status == XF86OutputStatusConnected) {
- if (radeon_output->type == OUTPUT_DVI || radeon_output->type == OUTPUT_VGA) {
-- edid_mon = xf86OutputGetEDID (output, radeon_output->pI2CBus);
-- xf86OutputSetEDID (output, edid_mon);
-+ if (output->MonInfo) {
-+ edid_mon = xf86OutputGetEDID (output, radeon_output->pI2CBus);
-+ xf86OutputSetEDID (output, edid_mon);
-
-- modes = xf86OutputGetEDIDModes (output);
-- return modes;
-+ modes = xf86OutputGetEDIDModes (output);
-+ return modes;
-+ }
- }
- if (radeon_output->type == OUTPUT_STV || radeon_output->type == OUTPUT_CTV) {
- modes = RADEONTVModes(output);
-diff --git a/src/radeon_output.c b/src/radeon_output.c
-index a6da78e..e2f26e7 100644
---- a/src/radeon_output.c
-+++ b/src/radeon_output.c
-@@ -75,13 +75,14 @@ const char *TMDSTypeName[4] = {
- "None"
- };
-
--const char *DDCTypeName[6] = {
-+const char *DDCTypeName[7] = {
- "None",
- "MONID",
- "DVI_DDC",
- "VGA_DDC",
- "CRT2_DDC",
-- "LCD_DDC"
-+ "LCD_DDC",
-+ "GPIO_DDC"
- };
-
- const char *DACTypeName[4] = {
-@@ -277,7 +278,7 @@ RADEONDisplayDDCConnected(ScrnInfoPtr pScrn, xf86OutputPtr output)
- DDCReg = radeon_output->DDCReg;
-
- /* Read and output monitor info using DDC2 over I2C bus */
-- if (radeon_output->pI2CBus && info->ddc2 && (DDCReg != RADEON_LCD_GPIO_MASK)) {
-+ if (radeon_output->pI2CBus && info->ddc2 && (DDCReg != RADEON_LCD_GPIO_MASK) && (DDCReg != RADEON_MDGPIO_EN_REG)) {
- OUTREG(DDCReg, INREG(DDCReg) &
- (CARD32)~(RADEON_GPIO_A_0 | RADEON_GPIO_A_1));
-
-@@ -331,7 +332,7 @@ RADEONDisplayDDCConnected(ScrnInfoPtr pScrn, xf86OutputPtr output)
- usleep(15000);
- if(*MonInfo) break;
- }
-- } else if (radeon_output->pI2CBus && info->ddc2 && DDCReg == RADEON_LCD_GPIO_MASK) {
-+ } else if (radeon_output->pI2CBus && info->ddc2 && ((DDCReg == RADEON_LCD_GPIO_MASK) || (DDCReg == RADEON_MDGPIO_EN_REG))) {
- *MonInfo = xf86DoEDID_DDC2(pScrn->scrnIndex, radeon_output->pI2CBus);
- } else {
- xf86DrvMsg(pScrn->scrnIndex, X_WARNING, "DDC2/I2C is not properly initialized\n");
-@@ -669,9 +670,19 @@ static RADEONMonitorType RADEONPortCheckNonDDC(ScrnInfoPtr pScrn, xf86OutputPtr
- RADEONOutputPrivatePtr radeon_output = output->driver_private;
- RADEONMonitorType MonType = MT_NONE;
-
--
- if (radeon_output->type == OUTPUT_LVDS) {
-- MonType = MT_LCD;
-+#if defined(__powerpc__)
-+ /* not sure on ppc, OF? */
-+#else
-+ if (!info->IsAtomBios) {
-+ /* see if the lid is closed -- only works at boot */
-+ if (INREG(RADEON_BIOS_6_SCRATCH) & 0x10)
-+ MonType = MT_NONE;
-+ else
-+ MonType = MT_LCD;
-+ } else
-+#endif
-+ MonType = MT_LCD;
- } else if (radeon_output->type == OUTPUT_DVI) {
- if (radeon_output->TMDSType == TMDS_INT) {
- if (INREG(RADEON_FP_GEN_CNTL) & RADEON_FP_DETECT_SENSE)
-@@ -765,10 +776,14 @@ radeon_mode_fixup(xf86OutputPtr output, DisplayModePtr mode,
- }
- }
-
-- /* update clock for LVDS always and DFP if RMX is active */
-- if ((radeon_output->MonType == MT_LCD) ||
-- ((radeon_output->MonType == MT_DFP) &&
-- (radeon_output->Flags & RADEON_USE_RMX))) {
-+ /* update timing for LVDS and DFP if RMX is active */
-+ if (radeon_output->Flags & RADEON_USE_RMX) {
-+ adjusted_mode->CrtcHTotal = mode->CrtcHDisplay + radeon_output->HBlank;
-+ adjusted_mode->CrtcHSyncStart = mode->CrtcHDisplay + radeon_output->HOverPlus;
-+ adjusted_mode->CrtcHSyncEnd = mode->CrtcHSyncStart + radeon_output->HSyncWidth;
-+ adjusted_mode->CrtcVTotal = mode->CrtcVDisplay + radeon_output->VBlank;
-+ adjusted_mode->CrtcVSyncStart = mode->CrtcVDisplay + radeon_output->VOverPlus;
-+ adjusted_mode->CrtcVSyncEnd = mode->CrtcVSyncStart + radeon_output->VSyncWidth;
- adjusted_mode->Clock = radeon_output->DotClock;
- adjusted_mode->Flags = radeon_output->Flags;
- }
-@@ -1636,6 +1651,16 @@ radeon_detect(xf86OutputPtr output)
- break;
+ /*0x0028023;*/
+- RADEONInitTvDacCntl(pScrn, save);
++ RADEONInitTvDacCntl(output, save);
+
+ if (IS_R300_VARIANT)
+ save->gpiopad_a = info->SavedReg.gpiopad_a | 1;
+@@ -1671,9 +1673,13 @@ radeon_detect(xf86OutputPtr output)
+ * so we can get something on the screen
+ */
+ if (((radeon_output->type == OUTPUT_VGA || radeon_output->type == OUTPUT_DVI) &&
+- radeon_output->DACType == DAC_TVDAC) ||
+- (info->IsIGP && radeon_output->type == OUTPUT_DVI))
++ radeon_output->DACType == DAC_TVDAC)) {
++ radeon_output->MonType = MT_CRT;
+ return XF86OutputStatusUnknown;
++ } else if (info->IsIGP && radeon_output->type == OUTPUT_DVI) {
++ radeon_output->MonType = MT_DFP; /* MT_LCD ??? */
++ return XF86OutputStatusUnknown;
++ }
}
-+ if (!connected) {
-+ /* default to unknown for flaky chips/connectors
-+ * so we can get something on the screen
-+ */
-+ if (((radeon_output->type == OUTPUT_VGA || radeon_output->type == OUTPUT_DVI) &&
-+ radeon_output->DACType == DAC_TVDAC) ||
-+ (info->IsIGP && radeon_output->type == OUTPUT_DVI))
-+ return XF86OutputStatusUnknown;
-+ }
-+
if (connected)
- return XF86OutputStatusConnected;
- else
-@@ -1911,7 +1936,7 @@ radeon_create_resources(xf86OutputPtr output)
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "RRConfigureOutputProperty error, %d\n", err);
- }
-- /* Set the current value of the backlight property */
-+ /* Set the current value of the property */
- switch (radeon_output->default_tvStd) {
- case TV_STD_PAL:
- s = "pal";
-@@ -2081,47 +2106,23 @@ radeon_set_property(xf86OutputPtr output, Atom property,
- return FALSE;
- s = (char*)value->data;
- if (value->size == strlen("ntsc") && !strncmp("ntsc", s, strlen("ntsc"))) {
-- if (radeon_output->SupportedTVStds & TV_STD_NTSC) {
-- radeon_output->tvStd = TV_STD_NTSC;
-- return TRUE;
-- } else {
-- return FALSE;
-- }
-+ radeon_output->tvStd = TV_STD_NTSC;
-+ return TRUE;
- } else if (value->size == strlen("pal") && !strncmp("pal", s, strlen("pal"))) {
-- if (radeon_output->SupportedTVStds & TV_STD_PAL) {
-- radeon_output->tvStd = TV_STD_PAL;
-- return TRUE;
-- } else {
-- return FALSE;
-- }
-+ radeon_output->tvStd = TV_STD_PAL;
-+ return TRUE;
- } else if (value->size == strlen("pal-m") && !strncmp("pal-m", s, strlen("pal-m"))) {
-- if (radeon_output->SupportedTVStds & TV_STD_PAL_M) {
-- radeon_output->tvStd = TV_STD_PAL_M;
-- return TRUE;
-- } else {
-- return FALSE;
-- }
-+ radeon_output->tvStd = TV_STD_PAL_M;
-+ return TRUE;
- } else if (value->size == strlen("pal-60") && !strncmp("pal-60", s, strlen("pal-60"))) {
-- if (radeon_output->SupportedTVStds & TV_STD_PAL_60) {
-- radeon_output->tvStd = TV_STD_PAL_60;
-- return TRUE;
-- } else {
-- return FALSE;
-- }
-+ radeon_output->tvStd = TV_STD_PAL_60;
-+ return TRUE;
- } else if (value->size == strlen("ntsc-j") && !strncmp("ntsc-j", s, strlen("ntsc-j"))) {
-- if (radeon_output->SupportedTVStds & TV_STD_NTSC_J) {
-- radeon_output->tvStd = TV_STD_NTSC_J;
-- return TRUE;
-- } else {
-- return FALSE;
-- }
-+ radeon_output->tvStd = TV_STD_NTSC_J;
-+ return TRUE;
- } else if (value->size == strlen("scart-pal") && !strncmp("scart-pal", s, strlen("scart-pal"))) {
-- if (radeon_output->SupportedTVStds & TV_STD_SCART_PAL) {
-- radeon_output->tvStd = TV_STD_SCART_PAL;
-- return TRUE;
-- } else {
-- return FALSE;
-- }
-+ radeon_output->tvStd = TV_STD_SCART_PAL;
-+ return TRUE;
- }
- return FALSE;
- }
-@@ -2206,6 +2207,10 @@ static void RADEONI2CGetBits(I2CBusPtr b, int *Clock, int *data)
- val = INREG(b->DriverPrivate.uval+4);
- *Clock = (val & (1<<13)) != 0;
- *data = (val & (1<<12)) != 0;
-+ } else if (b->DriverPrivate.uval == RADEON_MDGPIO_EN_REG) {
-+ val = INREG(b->DriverPrivate.uval+4);
-+ *Clock = (val & (1<<19)) != 0;
-+ *data = (val & (1<<18)) != 0;
- } else {
- val = INREG(b->DriverPrivate.uval);
- *Clock = (val & RADEON_GPIO_Y_1) != 0;
-@@ -2225,6 +2230,11 @@ static void RADEONI2CPutBits(I2CBusPtr b, int Clock, int data)
- val |= (Clock ? 0:(1<<13));
- val |= (data ? 0:(1<<12));
- OUTREG(b->DriverPrivate.uval, val);
-+ } else if (b->DriverPrivate.uval == RADEON_MDGPIO_EN_REG) {
-+ val = INREG(b->DriverPrivate.uval) & (CARD32)~((1<<18) | (1<<19));
-+ val |= (Clock ? 0:(1<<19));
-+ val |= (data ? 0:(1<<18));
-+ OUTREG(b->DriverPrivate.uval, val);
- } else {
- val = INREG(b->DriverPrivate.uval) & (CARD32)~(RADEON_GPIO_EN_0 | RADEON_GPIO_EN_1);
- val |= (Clock ? 0:RADEON_GPIO_EN_1);
-@@ -2430,6 +2440,15 @@ RADEONGetLVDSInfo (xf86OutputPtr output)
- }
- }
-
-+ info->LVDSBiosNativeMode = TRUE;
-+ if (!xf86ReturnOptValBool(info->Options, OPTION_LVDS_BIOS_NATIVE_MODE, TRUE)) {
-+ info->LVDSBiosNativeMode = FALSE;
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using CVT mode for LVDS\n");
-+ } else {
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Using LVDS Native Mode\n");
-+ }
-+
-+
- /* The panel size we collected from BIOS may not be the
- * maximum size supported by the panel. If not, we update
- * it now. These will be used if no matching mode can be
-@@ -2547,6 +2566,7 @@ void RADEONInitConnector(xf86OutputPtr output)
- case DDC_VGA : DDCReg = RADEON_GPIO_VGA_DDC; break;
- case DDC_CRT2 : DDCReg = RADEON_GPIO_CRT2_DDC; break;
- case DDC_LCD : DDCReg = RADEON_LCD_GPIO_MASK; break;
-+ case DDC_GPIO : DDCReg = RADEON_MDGPIO_EN_REG; break;
- default: break;
- }
-
-@@ -2791,6 +2811,78 @@ static void RADEONSetupGenericConnectors(ScrnInfoPtr pScrn)
-
- }
-
-+#if defined(__powerpc__)
-+
-+/*
-+ * Returns RADEONMacModel or 0 based on lines 'detected as' and 'machine'
-+ * in /proc/cpuinfo (on Linux) */
-+static RADEONMacModel RADEONDetectMacModel(ScrnInfoPtr pScrn)
-+{
-+ RADEONMacModel ret = 0;
-+#ifdef __linux__
-+ char cpuline[50]; /* 50 should be sufficient for our purposes */
-+ FILE *f = fopen ("/proc/cpuinfo", "r");
-+
-+ if (f != NULL) {
-+ while (fgets(cpuline, sizeof cpuline, f)) {
-+ if (!strncmp(cpuline, "machine", strlen ("machine"))) {
-+ if (strstr(cpuline, "PowerBook5,6") ||
-+ strstr(cpuline, "PowerBook5,7") ||
-+ strstr(cpuline, "PowerBook5,8") ||
-+ strstr(cpuline, "PowerBook5,9")) {
-+ ret = RADEON_MAC_POWERBOOK_DL;
-+ break;
-+ }
-+
-+ if (strstr(cpuline, "PowerMac10,1") ||
-+ strstr(cpuline, "PowerMac10,2")) {
-+ ret = RADEON_MAC_MINI;
-+ break;
-+ }
-+ } else if (!strncmp(cpuline, "detected as", strlen("detected as"))) {
-+ if (strstr(cpuline, "iBook")) {
-+ ret = RADEON_MAC_IBOOK;
-+ break;
-+ } else if (strstr(cpuline, "PowerBook")) {
-+ ret = RADEON_MAC_POWERBOOK_DL;
-+ break;
-+ }
-+
-+ /* No known PowerMac model detected */
-+ break;
-+ }
-+ }
-+
-+ fclose (f);
-+ } else
-+ xf86DrvMsg(pScrn->scrnIndex, X_WARNING,
-+ "Cannot detect PowerMac model because /proc/cpuinfo not "
-+ "readable.\n");
-+
-+#endif /* __linux */
-+
-+ if (ret) {
-+ xf86DrvMsg(pScrn->scrnIndex, X_DEFAULT, "Detected %s.\n",
-+ ret == RADEON_MAC_POWERBOOK_DL ? "PowerBook with dual link DVI" :
-+ ret == RADEON_MAC_POWERBOOK ? "PowerBook with single link DVI" :
-+ ret == RADEON_MAC_IBOOK ? "iBook" :
-+ "Mac Mini");
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+ "If this is not correct, try Option \"MacModel\" and "
-+ "consider reporting to the\n");
-+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
-+ "xorg-driver-ati at lists.x.org mailing list"
-+#ifdef __linux__
-+ " with the contents of /proc/cpuinfo"
-+#endif
-+ ".\n");
-+ }
-+
-+ return ret;
-+}
-+
-+#endif /* __powerpc__ */
-+
- /*
- * initialise the static data sos we don't have to re-do at randr change */
- Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
-@@ -2816,9 +2908,8 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
- }
-
- #if defined(__powerpc__)
-- optstr = (char *)xf86GetOptValString(info->Options, OPTION_MAC_MODEL);
--
- info->MacModel = 0;
-+ optstr = (char *)xf86GetOptValString(info->Options, OPTION_MAC_MODEL);
- if (optstr) {
- if (!strncmp("ibook", optstr, strlen("ibook")))
- info->MacModel = RADEON_MAC_IBOOK;
-@@ -2830,12 +2921,16 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
- info->MacModel = RADEON_MAC_MINI;
- else {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Invalid Mac Model: %s\n", optstr);
-- return FALSE;
- }
-+ }
-+
-+ if (!info->MacModel) {
-+ info->MacModel = RADEONDetectMacModel(pScrn);
-+ }
-
-+ if (info->MacModel){
- if (!RADEONSetupAppleConnectors(pScrn))
- RADEONSetupGenericConnectors(pScrn);
--
- } else
- #endif
- if (xf86ReturnOptValBool(info->Options, OPTION_DEFAULT_CONNECTOR_TABLE, FALSE)) {
-diff --git a/src/radeon_probe.h b/src/radeon_probe.h
-index dbd50d7..66ece94 100644
---- a/src/radeon_probe.h
-+++ b/src/radeon_probe.h
-@@ -60,6 +60,7 @@ typedef enum
- DDC_VGA,
- DDC_CRT2,
- DDC_LCD,
-+ DDC_GPIO,
- } RADEONDDCType;
-
- typedef enum
+@@ -2623,6 +2629,7 @@ void RADEONInitConnector(xf86OutputPtr output)
+ if (radeon_output->type == OUTPUT_STV ||
+ radeon_output->type == OUTPUT_CTV) {
+ RADEONGetTVInfo(output);
++ RADEONGetTVDacAdjInfo(output);
+ }
+
+ if (radeon_output->DACType == DAC_TVDAC) {
+diff --git a/src/radeon_tv.c b/src/radeon_tv.c
+index 3a26a0a..2a8873c 100644
+--- a/src/radeon_tv.c
++++ b/src/radeon_tv.c
+@@ -434,7 +434,7 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save,
+
+ save->tv_vscaler_cntl2 = ((save->tv_vscaler_cntl2 & 0x00fffff0)
+ | (0x10 << 24)
+- | RADEON_DITHER_MODE
++ | RADEON_DITHER_MODE
+ | RADEON_Y_OUTPUT_DITHER_EN
+ | RADEON_UV_OUTPUT_DITHER_EN
+ | RADEON_UV_TO_BUF_DITHER_EN);
+@@ -444,10 +444,12 @@ void RADEONInitTVRegisters(xf86OutputPtr output, RADEONSavePtr save,
+ tmp = (tmp << RADEON_UV_OUTPUT_POST_SCALE_SHIFT) | 0x000b0000;
+ save->tv_timing_cntl = tmp;
+
+- save->tv_dac_cntl = RADEON_TV_DAC_NBLANK | RADEON_TV_DAC_NHOLD | (8 << 16) | (6 << 20);
++ save->tv_dac_cntl = (RADEON_TV_DAC_NBLANK |
++ RADEON_TV_DAC_NHOLD |
++ radeon_output->tv_dac_adj /*(8 << 16) | (6 << 20)*/);
+
+ if (radeon_output->tvStd == TV_STD_NTSC ||
+- radeon_output->tvStd == TV_STD_NTSC_J)
++ radeon_output->tvStd == TV_STD_NTSC_J)
+ save->tv_dac_cntl |= RADEON_TV_DAC_STD_NTSC;
+ else
+ save->tv_dac_cntl |= RADEON_TV_DAC_STD_PAL;
Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/F-8/sources,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- sources 6 Oct 2007 18:20:36 -0000 1.20
+++ sources 19 Nov 2007 00:13:28 -0000 1.21
@@ -1 +1 @@
-2f11b8e699fadd93e6932b07cc01bc64 xf86-video-ati-6.7.195.tar.bz2
+06db625391c75c8be86c4dd5a5d713e6 xf86-video-ati-6.7.196.tar.bz2
Index: xorg-x11-drv-ati.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-drv-ati/F-8/xorg-x11-drv-ati.spec,v
retrieving revision 1.66
retrieving revision 1.67
diff -u -r1.66 -r1.67
--- xorg-x11-drv-ati.spec 16 Oct 2007 02:28:19 -0000 1.66
+++ xorg-x11-drv-ati.spec 19 Nov 2007 00:13:28 -0000 1.67
@@ -4,8 +4,8 @@
Summary: Xorg X11 ati video driver
Name: xorg-x11-drv-ati
-Version: 6.7.195
-Release: 3%{?dist}
+Version: 6.7.196
+Release: 1%{?dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X Hardware Support
@@ -83,6 +83,9 @@
%{_mandir}/man4/radeon.4*
%changelog
+* Mon Nov 19 2007 Dave Airlie <airlied at redhat.com> 6.7.196-1
+- rebase to 6.7.196 upstream + fixes from git
+
* Tue Oct 16 2007 Dave Airlie <airlied at redhat.com> 6.7.195-3
- upstream fixes including previous patches + attempted mac detection
More information about the fedora-extras-commits
mailing list