From ac37d6ba5150e36d570734e2f30b3b217c236d8921d010fc2377165a7727810a Mon Sep 17 00:00:00 2001 From: Stefan Dirsch Date: Thu, 19 Apr 2012 09:39:24 +0000 Subject: [PATCH] Accepting request 114520 from home:vuntz:branches:X11:XOrg New package, split from xorg-x11-driver-video OBS-URL: https://build.opensuse.org/request/show/114520 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xf86-video-ati?expand=0&rev=1 --- .gitattributes | 23 ++++ .gitignore | 1 + xf86-video-ati-6.14.3.tar.bz2 | 3 + xf86-video-ati-bug474071-fix2.diff | 56 +++++++++ ...-video-ati-bug519261-increase-virtual.diff | 26 +++++ ...eo-ati-disable-dri-bug437651-ia64only.diff | 11 ++ xf86-video-ati-ia64_screen_blank.diff | 106 ++++++++++++++++++ xf86-video-ati.changes | 6 + xf86-video-ati.diff | 28 +++++ xf86-video-ati.spec | 90 +++++++++++++++ 10 files changed, 350 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 xf86-video-ati-6.14.3.tar.bz2 create mode 100644 xf86-video-ati-bug474071-fix2.diff create mode 100644 xf86-video-ati-bug519261-increase-virtual.diff create mode 100644 xf86-video-ati-disable-dri-bug437651-ia64only.diff create mode 100644 xf86-video-ati-ia64_screen_blank.diff create mode 100644 xf86-video-ati.changes create mode 100644 xf86-video-ati.diff create mode 100644 xf86-video-ati.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/xf86-video-ati-6.14.3.tar.bz2 b/xf86-video-ati-6.14.3.tar.bz2 new file mode 100644 index 0000000..acc8e29 --- /dev/null +++ b/xf86-video-ati-6.14.3.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:844a2649eff6a3e92aff3e1837ea864f1561b4822b3e5d5ccb27b3b7fb8137b4 +size 1113119 diff --git a/xf86-video-ati-bug474071-fix2.diff b/xf86-video-ati-bug474071-fix2.diff new file mode 100644 index 0000000..9a71410 --- /dev/null +++ b/xf86-video-ati-bug474071-fix2.diff @@ -0,0 +1,56 @@ +Index: xorg-x11-driver-video-7.5/xf86-video-ati-6.13.0/src/radeon_driver.c +=================================================================== +--- xorg-x11-driver-video-7.5/xf86-video-ati-6.13.0.orig/src/radeon_driver.c ++++ xorg-x11-driver-video-7.5/xf86-video-ati-6.13.0/src/radeon_driver.c +@@ -223,6 +223,7 @@ struct RADEONInt10Save { + uint32_t MEM_CNTL; + uint32_t MEMSIZE; + uint32_t MPP_TB_CONFIG; ++ unsigned char MISC_OUT; + }; + + static Bool RADEONMapMMIO(ScrnInfoPtr pScrn); +@@ -278,14 +279,17 @@ RADEONPreInt10Save(ScrnInfoPtr pScrn, vo + RADEONInfoPtr info = RADEONPTR(pScrn); + unsigned char *RADEONMMIO = info->MMIO; + uint32_t CardTmp; +- static struct RADEONInt10Save SaveStruct = { 0, 0, 0 }; ++ static struct RADEONInt10Save SaveStruct = { 0, 0, 0, 0 }; + + if (!IS_AVIVO_VARIANT) { ++ OUTREG(0,RADEON_MEM_CNTL); + /* Save the values and zap MEM_CNTL */ + SaveStruct.MEM_CNTL = INREG(RADEON_MEM_CNTL); + SaveStruct.MEMSIZE = INREG(RADEON_CONFIG_MEMSIZE); + SaveStruct.MPP_TB_CONFIG = INREG(RADEON_MPP_TB_CONFIG); +- ++#if !defined(__powerpc__) && !defined(__sparc__) ++ SaveStruct.MISC_OUT = inb(pScrn->domainIOBase + RADEON_GENMO_RD); ++#endif + /* + * Zap MEM_CNTL and set MPP_TB_CONFIG<31:24> to 4 + */ +@@ -347,6 +351,14 @@ RADEONPostInt10Check(ScrnInfoPtr pScrn, + CardTmp |= (pSave->MPP_TB_CONFIG & 0xff000000u); + OUTREG(RADEON_MPP_TB_CONFIG, CardTmp); + } ++#if !defined(__powerpc__) && !defined(__sparc__) ++ if (CardTmp != pSave->MISC_OUT) { ++ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, ++ "Restoring MiscOut (%x), setting to %x\n", ++ CardTmp, pSave->MEM_CNTL); ++ outb(pScrn->domainIOBase + RADEON_GENMO_WT, pSave->MISC_OUT); ++ } ++#endif + } + + /* Allocate our private RADEONInfoRec */ +@@ -3014,7 +3026,7 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, in + goto fail1; + } + +-#if !defined(__alpha__) ++#if !defined(__alpha__) && !defined (__ia64__) + if ( + #ifndef XSERVER_LIBPCIACCESS + xf86GetPciDomain(info->PciTag) || diff --git a/xf86-video-ati-bug519261-increase-virtual.diff b/xf86-video-ati-bug519261-increase-virtual.diff new file mode 100644 index 0000000..6bbe06f --- /dev/null +++ b/xf86-video-ati-bug519261-increase-virtual.diff @@ -0,0 +1,26 @@ +Index: xf86-video-ati-6.13.0/src/radeon_driver.c +=================================================================== +--- xf86-video-ati-6.13.0.orig/src/radeon_driver.c ++++ xf86-video-ati-6.13.0/src/radeon_driver.c +@@ -3221,6 +3221,21 @@ Bool RADEONPreInit(ScrnInfoPtr pScrn, in + if (!RADEONPreInitControllers(pScrn)) + goto fail; + ++ /* Unless we're able to shrink/enlarge FB on the fly (GEM etc.), allocate ++ * large enough (TM) virtual size */ ++ if (!pScrn->display->virtualX || !pScrn->display->virtualY) { ++ /* Have at least enough space for double buffering and z Buffer + some textures */ ++ if (2 * 1920*1920 * (pScrn->bitsPerPixel/8) <= pScrn->videoRam / 4 * 1024) { ++ /* Fits on 128MB and up */ ++ pScrn->display->virtualX = 2 * 1920; ++ pScrn->display->virtualY = 1920; ++ } else if (2 * 1680*1280 * (pScrn->bitsPerPixel/8) <= pScrn->videoRam / 4 * 1024) { ++ /* Fits on 64MB and up */ ++ pScrn->display->virtualX = 2 * 1680; ++ pScrn->display->virtualY = 1280; ++ } ++ } ++ + if (!xf86InitialConfiguration (pScrn, FALSE)) + { + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "No valid modes.\n"); diff --git a/xf86-video-ati-disable-dri-bug437651-ia64only.diff b/xf86-video-ati-disable-dri-bug437651-ia64only.diff new file mode 100644 index 0000000..79257f8 --- /dev/null +++ b/xf86-video-ati-disable-dri-bug437651-ia64only.diff @@ -0,0 +1,11 @@ +--- xf86-video-ati-6.13.0/src/radeon_driver.c.orig 2010-03-15 17:27:28.000000000 +0100 ++++ xf86-video-ati-6.13.0/src/radeon_driver.c 2010-04-10 11:04:12.000000000 +0200 +@@ -2358,7 +2358,7 @@ static Bool RADEONPreInitDRI(ScrnInfoPtr + } + } + +- if (!xf86ReturnOptValBool(info->Options, OPTION_DRI, TRUE)) { ++ if (!xf86ReturnOptValBool(info->Options, OPTION_DRI, FALSE)) { + xf86DrvMsg(pScrn->scrnIndex, X_INFO, + "Direct rendering forced off\n"); + return FALSE; diff --git a/xf86-video-ati-ia64_screen_blank.diff b/xf86-video-ati-ia64_screen_blank.diff new file mode 100644 index 0000000..039db8d --- /dev/null +++ b/xf86-video-ati-ia64_screen_blank.diff @@ -0,0 +1,106 @@ +Index: xorg-x11-driver-video-7.5/xf86-video-ati-6.13.0/src/radeon_driver.c +=================================================================== +--- xorg-x11-driver-video-7.5/xf86-video-ati-6.13.0.orig/src/radeon_driver.c ++++ xorg-x11-driver-video-7.5/xf86-video-ati-6.13.0/src/radeon_driver.c +@@ -224,6 +224,7 @@ struct RADEONInt10Save { + uint32_t MEMSIZE; + uint32_t MPP_TB_CONFIG; + unsigned char MISC_OUT; ++ unsigned char ATTR[0x10]; + }; + + static Bool RADEONMapMMIO(ScrnInfoPtr pScrn); +@@ -273,13 +274,67 @@ RADEONEntPtr RADEONEntPriv(ScrnInfoPtr p + return pPriv->ptr; + } + ++#if !defined(__powerpc__) && !defined(__sparc__) ++/* ++ * ++ */ ++void ++RADEONPreInt10SaveVGA(ScrnInfoPtr pScrn, struct RADEONInt10Save *pSave) ++{ ++ IOADDRESS Base = pScrn->domainIOBase; ++ unsigned int Stat1Reg; ++ int i; ++ ++ pSave->MISC_OUT = inb(pScrn->domainIOBase + RADEON_GENMO_RD); ++ Stat1Reg = (pSave->MISC_OUT & 0x1) ? 0x3DA : 0x3BA; ++ { ++ for (i = 0; i < 0x10; i++) { ++ inb(Base + Stat1Reg); ++ outb(Base + RADEON_ATTRX, i); ++ pSave->ATTR[i] = inb(Base + RADEON_ATTRDR); ++ } ++ } ++} ++ ++/* ++ * ++ */ ++void ++RADEONPostInt10CheckVGA(ScrnInfoPtr pScrn, struct RADEONInt10Save *pSave) ++{ ++ IOADDRESS Base = pScrn->domainIOBase; ++ unsigned int Stat1Reg = (pSave->MISC_OUT & 0x1) ? 0x3DA : 0x3BA; ++ unsigned char CardTmp = inb(pScrn->domainIOBase + RADEON_GENMO_RD); ++ int i; ++ ++ if (CardTmp != pSave->MISC_OUT) { ++ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, ++ "Restoring MiscOut (%x), setting to %x\n", ++ CardTmp, pSave->MEM_CNTL); ++ outb(pScrn->domainIOBase + RADEON_GENMO_WT, pSave->MISC_OUT); ++ } ++ ++ for (i = 0; i < 0x10; i++) { ++ inb(Base + Stat1Reg); ++ outb(Base + RADEON_ATTRX, i); ++ CardTmp = inb(Base + RADEON_ATTRDR); ++ if ( CardTmp != pSave->ATTR[i] ) { ++ xf86DrvMsg(pScrn->scrnIndex, X_WARNING, ++ "Restoring AttrReg[0x%i]: 0x%x to 0x%x\n", ++ i, CardTmp, pSave->ATTR[i]); ++ outb(Base + RADEON_ATTRDW, pSave->ATTR[i]); ++ } ++ } ++} ++#endif ++ + static void + RADEONPreInt10Save(ScrnInfoPtr pScrn, void **pPtr) + { + RADEONInfoPtr info = RADEONPTR(pScrn); + unsigned char *RADEONMMIO = info->MMIO; + uint32_t CardTmp; +- static struct RADEONInt10Save SaveStruct = { 0, 0, 0, 0 }; ++ static struct RADEONInt10Save SaveStruct = { 0, 0, 0, 0, {0} }; + + if (!IS_AVIVO_VARIANT) { + OUTREG(0,RADEON_MEM_CNTL); +@@ -287,8 +342,9 @@ RADEONPreInt10Save(ScrnInfoPtr pScrn, vo + SaveStruct.MEM_CNTL = INREG(RADEON_MEM_CNTL); + SaveStruct.MEMSIZE = INREG(RADEON_CONFIG_MEMSIZE); + SaveStruct.MPP_TB_CONFIG = INREG(RADEON_MPP_TB_CONFIG); ++ + #if !defined(__powerpc__) && !defined(__sparc__) +- SaveStruct.MISC_OUT = inb(pScrn->domainIOBase + RADEON_GENMO_RD); ++ RADEONPreInt10SaveVGA(pScrn, &SaveStruct); + #endif + /* + * Zap MEM_CNTL and set MPP_TB_CONFIG<31:24> to 4 +@@ -352,12 +408,7 @@ RADEONPostInt10Check(ScrnInfoPtr pScrn, + OUTREG(RADEON_MPP_TB_CONFIG, CardTmp); + } + #if !defined(__powerpc__) && !defined(__sparc__) +- if (CardTmp != pSave->MISC_OUT) { +- xf86DrvMsg(pScrn->scrnIndex, X_WARNING, +- "Restoring MiscOut (%x), setting to %x\n", +- CardTmp, pSave->MEM_CNTL); +- outb(pScrn->domainIOBase + RADEON_GENMO_WT, pSave->MISC_OUT); +- } ++ RADEONPostInt10CheckVGA(pScrn, pSave); + #endif + } + diff --git a/xf86-video-ati.changes b/xf86-video-ati.changes new file mode 100644 index 0000000..1beb571 --- /dev/null +++ b/xf86-video-ati.changes @@ -0,0 +1,6 @@ +------------------------------------------------------------------- +Wed Apr 18 15:51:24 UTC 2012 - vuntz@opensuse.org + +- Split xf86-video-ati from xorg-x11-driver-video. + Initial version: 6.14.3. + diff --git a/xf86-video-ati.diff b/xf86-video-ati.diff new file mode 100644 index 0000000..69413fa --- /dev/null +++ b/xf86-video-ati.diff @@ -0,0 +1,28 @@ +--- + src/AtomBios/includes/CD_Structs.h | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +Index: src/AtomBios/includes/CD_Structs.h +=================================================================== +--- src/AtomBios/includes/CD_Structs.h.orig ++++ src/AtomBios/includes/CD_Structs.h +@@ -419,6 +419,10 @@ typedef struct _DEVICE_DATA { + + #endif + ++#if (PARSER_TYPE==DRIVER_TYPE_PARSER) ++#pragma pack(pop) ++#endif ++ + struct _PARSER_TEMP_DATA; + typedef UINT32 WORKSPACE_POINTER; + +@@ -479,8 +483,4 @@ typedef struct _INDIRECT_IO_PARSER_COMMA + UINT8 csize; + } INDIRECT_IO_PARSER_COMMANDS; + +-#if (PARSER_TYPE==DRIVER_TYPE_PARSER) +-#pragma pack(pop) +-#endif +- + #endif diff --git a/xf86-video-ati.spec b/xf86-video-ati.spec new file mode 100644 index 0000000..b90cfd3 --- /dev/null +++ b/xf86-video-ati.spec @@ -0,0 +1,90 @@ +# +# spec file for package xf86-video-ati +# +# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# + +Name: xf86-video-ati +Version: 6.14.3 +Release: 0 +License: MIT +Summary: ATI video driver for the Xorg X server +Url: http://xorg.freedesktop.org/ +Group: System/X11/Servers/XF86_4 +Source0: http://xorg.freedesktop.org/releases/individual/driver/%{name}-%{version}.tar.bz2 +Patch0: xf86-video-ati.diff +Patch1: xf86-video-ati-bug474071-fix2.diff +Patch2: xf86-video-ati-ia64_screen_blank.diff +Patch3: xf86-video-ati-bug519261-increase-virtual.diff +Patch4: xf86-video-ati-disable-dri-bug437651-ia64only.diff +BuildRequires: Mesa-devel +BuildRequires: pkg-config +BuildRequires: pkgconfig(libdrm) >= 2.2 +BuildRequires: pkgconfig(libdrm_radeon) +BuildRequires: pkgconfig(libudev) +BuildRequires: pkgconfig(fontsproto) +BuildRequires: pkgconfig(pciaccess) >= 0.8.0 +BuildRequires: pkgconfig(randrproto) +BuildRequires: pkgconfig(renderproto) +BuildRequires: pkgconfig(videoproto) +BuildRequires: pkgconfig(xextproto) +BuildRequires: pkgconfig(xf86driproto) +BuildRequires: pkgconfig(xorg-macros) >= 1.8 +BuildRequires: pkgconfig(xorg-server) >= 1.3 +BuildRequires: pkgconfig(xproto) +Requires: VIDEO_ABI_VERSION = 10 +Supplements: xorg-x11-server +# This was part of the xorg-x11-driver-video package up to version 7.6 +Conflicts: xorg-x11-driver-video <= 7.6 +BuildRoot: %{_tmppath}/%{name}-%{version}-build + +%description +ati is an Xorg driver for ATI video cards. + +It autodetects whether your hardware has a Radeon, Rage 128, or Mach64 +or earlier class of chipset, and loads the radeon, r128, or mach64 +driver as appropriate. + +%prep +%setup -q +%patch0 +%patch1 -p2 +%patch2 -p2 +%patch3 -p1 +%ifarch ia64 +%patch4 -p1 +%endif + +%build +%configure +make %{?_smp_mflags} + +%install +%make_install +find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print + +%files +%defattr(-,root,root) +%doc ChangeLog COPYING README +%dir %{_libdir}/xorg/modules/drivers +%dir %{_libdir}/xorg/modules/multimedia +%{_libdir}/xorg/modules/drivers/ati_drv.so +%{_libdir}/xorg/modules/drivers/radeon_drv.so +%{_libdir}/xorg/modules/multimedia/theatre200_drv.so +%{_libdir}/xorg/modules/multimedia/theatre_detect_drv.so +%{_libdir}/xorg/modules/multimedia/theatre_drv.so +%{_datadir}/man/man4/ati.4%{?ext_man} +%{_datadir}/man/man4/radeon.4%{?ext_man} + +%changelog