works por deps fixed...
This commit is contained in:
@@ -0,0 +1,188 @@
|
||||
|
||||
AMD Software End User License Agreement
|
||||
|
||||
PLEASE READ THIS LICENSE CAREFULLY BEFORE USING THE SOFTWARE. BY
|
||||
DOWNLOADING, INSTALLING, COPYING OR USING THE SOFTWARE, YOU ARE AGREEING TO
|
||||
BE BOUND BY THE TERMS OF THIS LICENSE. IF YOU ARE ACCESSING THE SOFTWARE
|
||||
ELECTRONICALLY, SIGNIFY YOUR AGREEMENT BY CLICKING THE "AGREE/ACCEPT"
|
||||
BUTTON. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE, PROMPTLY RETURN
|
||||
THE SOFTWARE TO THE PLACE WHERE YOU OBTAINED IT AND (IF APPLICABLE) YOUR
|
||||
MONEY WILL BE REFUNDED OR IF THE SOFTWARE WAS ACCESSED ELECTRONICALLY CLICK
|
||||
"DISAGREE/DECLINE".
|
||||
|
||||
1. License. Advanced Micro Devices, Inc., on behalf of itself, its
|
||||
subsidiaries and licensors (referred collectively as "AMD") grants to you
|
||||
the following non-exclusive, right to use the software accompanying
|
||||
this License (hereinafter "Software") subject to the following terms and
|
||||
limitations:
|
||||
|
||||
|
||||
(a) Regardless of the media upon which it is distributed, the Software is
|
||||
licensed to you for use solely in conjunction with AMD hardware products to
|
||||
which the Software relates ("AMD Hardware").
|
||||
|
||||
(b) You own the medium on which the Software is recorded, but AMD and, if
|
||||
applicable, its licensors retain title to the Software and related
|
||||
documentation.
|
||||
|
||||
(c) You may:
|
||||
|
||||
i) use the Software solely in connection with the AMD Hardware on a
|
||||
single computer;
|
||||
|
||||
ii) make one copy of the Software in machine-readable form for backup
|
||||
purposes only. You must reproduce on such copy AMD's copyright notice and
|
||||
any other proprietary legends that were on the original copy of the
|
||||
Software;
|
||||
|
||||
iii) transfer all your license rights in the Software provided you must
|
||||
also transfer a copy of this License, the backup copy of the Software,
|
||||
the AMD Hardware and the related documentation and provided the other
|
||||
party reads and agrees to accept the terms and conditions of this
|
||||
License. Upon such transfer your license rights are then terminated.
|
||||
|
||||
(d) In addition to the license terms above, with respect to portions of
|
||||
the Software in source code or binary form designed exclusively for use
|
||||
with the Linux operating system ("AMD Linux Code"), you may use, display,
|
||||
modify, copy, distribute, allow others to re-distribute, package and re-
|
||||
package such AMD Linux Code for commercial and non-commercial purposes,
|
||||
provided that:
|
||||
|
||||
i) all binary components of the AMD Linux Code are not modified in any
|
||||
way;
|
||||
|
||||
ii) the AMD Linux Code is only used as part of the Software and in
|
||||
connection with AMD Hardware;
|
||||
|
||||
iii) all copyright notices of AMD are reproduced and you refer to these
|
||||
license terms;
|
||||
|
||||
iv) you may not offer or impose any terms on the use of AMD Linux
|
||||
Code that alter or restrict this License; and
|
||||
|
||||
v) if you have modified the AMD Linux Code, such modifications will be
|
||||
made publicly available and are licensed under the same terms provided
|
||||
herein to AMD or any other third party without further restriction,
|
||||
royalty or any other license requirement;
|
||||
|
||||
vi) to the extent there is any AMD sample or control panel source
|
||||
code included in the AMD Linux Code, no rights are granted to modify such
|
||||
code except for portions thereof that may be subject to third party
|
||||
license terms that grant such rights;
|
||||
|
||||
vii) no rights are granted to distribute the binary form of the AMD Linux
|
||||
Kernel Module made by linking the AMD Proprietary Kernel Library and the
|
||||
AMD Kernel Compatibility Layer binary compiled using Linux kernel
|
||||
headers;
|
||||
|
||||
viii) AMD is not obligated to provide any maintenance or technical
|
||||
support for any code resulting from AMD Linux Code.
|
||||
|
||||
2. Restrictions. The Software contains copyrighted and patented material,
|
||||
trade secrets and other proprietary material. In order to protect them,
|
||||
and except as permitted by this license or applicable legislation, you may
|
||||
not:
|
||||
|
||||
a) decompile, reverse engineer, disassemble or otherwise reduce the
|
||||
Software to a human-perceivable form;
|
||||
|
||||
b) modify, network, rent, lend, loan, distribute or create derivative
|
||||
works based upon the Software in whole or in part; or
|
||||
|
||||
c) electronically transmit the Software from one computer to another or
|
||||
over a network or otherwise transfer the Software except as permitted by
|
||||
this License.
|
||||
|
||||
3. Termination. This License is effective until terminated. You may
|
||||
terminate this License at any time by destroying the Software, related
|
||||
documentation and all copies thereof. This License will terminate
|
||||
immediately without notice from AMD if you fail to comply with any
|
||||
provision of this License. Upon termination you must destroy the Software,
|
||||
related documentation and all copies thereof.
|
||||
|
||||
4. Government End Users. If you are acquiring the Software on behalf of
|
||||
any unit or agency of the United States Government, the following
|
||||
provisions apply. The Government agrees the Software and documentation
|
||||
were developed at private expense and are provided with "RESTRICTED
|
||||
RIGHTS". Use, duplication, or disclosure by the Government is subject to
|
||||
restrictions as set forth in DFARS 227.7202-1(a) and 227.7202-3(a) (1995),
|
||||
DFARS 252.227-7013(c)(1)(ii) (Oct 1988), FAR 12.212(a)(1995), FAR 52.227-
|
||||
19, (June 1987) or FAR 52.227-14(ALT III) (June 1987),as amended from time
|
||||
to time. In the event that this License, or any part thereof, is deemed
|
||||
inconsistent with the minimum rights identified in the Restricted Rights
|
||||
provisions, the minimum rights shall prevail.
|
||||
|
||||
5. No Other License. No rights or licenses are granted by AMD under this
|
||||
License, expressly or by implication, with respect to any proprietary
|
||||
information or patent, copyright, trade secret or other intellectual
|
||||
property right owned or controlled by AMD, except as expressly provided in
|
||||
this License.
|
||||
|
||||
6. Additional Licenses. DISTRIBUTION OR USE OF THE SOFTWARE WITH AN
|
||||
OPERATING SYSTEM MAY REQUIRE ADDITIONAL LICENSES FROM THE OPERATING SYSTEM
|
||||
VENDOR.
|
||||
|
||||
7. Disclaimer of Warranty on Software. You expressly acknowledge and
|
||||
agree that use of the Software is at your sole risk. The Software and
|
||||
related documentation are provided "AS IS" and without warranty of any kind
|
||||
and AMD EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING,
|
||||
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
FORA PARTICULAR PURPOSE, OF QUALITY, OF QUIET ENJOYMENT AND OF NON-
|
||||
INFRINGEMENT OF THIRD PARTY RIGHTS. AMD DOES NOT WARRANT THAT THE
|
||||
FUNCTIONS CONTAINED IN THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT
|
||||
THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT
|
||||
DEFECTS IN THE SOFTWARE WILL BE CORRECTED. THE ENTIRE RISK AS TO THE
|
||||
RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU. FURTHERMORE,
|
||||
AMD DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE ORTHE
|
||||
RESULTS OF THE USE OF THE SOFTWARE OR RELATED DOCUMENTATION IN TERMS OF
|
||||
THEIR CORRECTNESS, ACCURACY, RELIABILITY, CURRENTNESS, OR OTHERWISE. NO
|
||||
ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY AMD OR AMD'S AUTHORIZED
|
||||
REPRESENTATIVE SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF
|
||||
THIS WARRANTY. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU (AND NOT AMD OR
|
||||
AMD'S AUTHORIZED REPRESENTATIVE) ASSUME THE ENTIRE COST OF ALL NECESSARY
|
||||
SERVICING, REPAIR OR CORRECTION. THE SOFTWARE IS NOT INTENDED FOR USE IN
|
||||
MEDICAL, LIFE SAVING OR LIFE SUSTAINING APPLICATIONS. SOME JURISDICTIONS
|
||||
DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION
|
||||
MAY NOT APPLY TO YOU.
|
||||
|
||||
8. Limitation of Liability. TO THE MAXIMUM EXTENT PERMITTED BY LAW, UNDER
|
||||
NO CIRCUMSTANCES INCLUDING NEGLIGENCE, SHALL AMD, OR ITS DIRECTORS,
|
||||
OFFICERS, EMPLOYEES OR AGENTS, BE LIABLE TO YOU FOR ANY INCIDENTAL,
|
||||
INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF
|
||||
BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND
|
||||
THE LIKE) ARISING OUT OF THE USE, MISUSE OR INABILITY TO USE THE SOFTWARE
|
||||
OR RELATED DOCUMENTATION, BREACH OR DEFAULT, INCLUDING THOSE ARISING FROM
|
||||
INFRINGEMENT OR ALLEGED INFRINGEMENT OF ANY PATENT, TRADEMARK, COPYRIGHT OR
|
||||
OTHER INTELLECTUAL PROPERTY RIGHT, BY AMD, EVEN IF AMD OR AMD'S AUTHORIZED
|
||||
REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME
|
||||
JURISDICTIONS DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR
|
||||
INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION
|
||||
MAY NOT APPLY TO YOU. AMD will not be liable for 1) loss of, or damage to,
|
||||
your records or data or 2) any damages claimed by you based on any third
|
||||
party claim. In no event shall AMD's total liability to you for all
|
||||
damages, losses, and causes of action (whether in contract, tort (including
|
||||
negligence) or otherwise) exceed the amount paid by you for the Software.
|
||||
The foregoing limitations will apply even if the above stated limitation
|
||||
fails of its essential purpose.
|
||||
|
||||
9. Controlling Law and Severability. This License shall be governed by
|
||||
and construed under the laws of the Province of Ontario, Canada without
|
||||
reference to its conflict of law principles. Any dispute related hereto
|
||||
will be brought only in the courts in Toronto, Ontario, Canada and such
|
||||
courts are agreed to be the convenient forum. In the event of any
|
||||
conflicts between foreign law, rules, and regulations, and Canadian law,
|
||||
rules, and regulations, Canadian law, rules and regulations shall prevail
|
||||
and govern. The United Nations Convention on Contracts for the
|
||||
International Sale of Goods shall not apply to this License. If for any
|
||||
reason a court of competent jurisdiction finds any provision of this
|
||||
License or portion thereof, to be unenforceable, that provision of the
|
||||
License shall be enforced to the maximum extent permissible so as to effect
|
||||
the intent of the parties, and the remainder of this License shall continue
|
||||
in full force and effect.
|
||||
|
||||
10. Complete Agreement. This License constitutes the entire agreement
|
||||
between the parties with respect to the use of the Software and the related
|
||||
documentation, and supersedes all prior or contemporaneous understandings
|
||||
or agreements, written or oral, regarding such subject matter. No
|
||||
amendment to or modification of this License will be binding unless in
|
||||
writing and signed by a duly authorized representative of AMD.
|
||||
@@ -0,0 +1,19 @@
|
||||
Index: work/common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh
|
||||
===================================================================
|
||||
--- work.orig/common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh
|
||||
+++ work/common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh
|
||||
@@ -4,10 +4,12 @@
|
||||
# Control script for ACPI lid state and AC adapter state
|
||||
#
|
||||
|
||||
+test -d /sys/module/fglrx || exit 0
|
||||
+
|
||||
getXuser() {
|
||||
- user=`finger| grep -m1 ":$displaynum " | awk '{print $1}'`
|
||||
+ user=`who | grep -m1 ":$displaynum " | awk '{print $1}'`
|
||||
if [ x"$user" = x"" ]; then
|
||||
- user=`finger| grep -m1 ":$displaynum" | awk '{print $1}'`
|
||||
+ user=`who | grep -m1 ":$displaynum" | awk '{print $1}'`
|
||||
fi
|
||||
if [ x"$user" != x"" ]; then
|
||||
userhome=`getent passwd $user | cut -d: -f6`
|
||||
@@ -0,0 +1 @@
|
||||
ATIEVENTSDOPTS=""
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=ATI Events Daemon
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/sbin/atieventsd --nodaemon
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,3 @@
|
||||
# Advanced Micro Devices, Inc.
|
||||
# radeon conflicts with AMD Linux Graphics Driver
|
||||
blacklist radeon
|
||||
@@ -0,0 +1,14 @@
|
||||
--- 14.1/common/lib/modules/fglrx/build_mod/firegl_public.c 2014-02-23 19:26:52.215995002 +0100
|
||||
+++ 14.1/common/lib/modules/fglrx/build_mod/firegl_public.c 2014-02-23 19:27:59.320999596 +0100
|
||||
@@ -1761,7 +1761,11 @@
|
||||
#else
|
||||
|
||||
#ifdef current_euid
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,14,0)
|
||||
+ return __kuid_val(current_euid());
|
||||
+#else
|
||||
return current_euid();
|
||||
+#endif
|
||||
#else
|
||||
return current->euid;
|
||||
#endif
|
||||
@@ -0,0 +1,52 @@
|
||||
Index: work/common/usr/share/applications/amdcccle.desktop
|
||||
===================================================================
|
||||
--- work.orig/common/usr/share/applications/amdcccle.desktop
|
||||
+++ work/common/usr/share/applications/amdcccle.desktop
|
||||
@@ -1,9 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
-Exec=amdcccle
|
||||
-Icon=ccc_large
|
||||
+Exec=amdcccle
|
||||
+Icon=amdcccle
|
||||
Categories=GNOME;KDE;GTK;Qt;HardwareSettings;Settings;
|
||||
+TryExec=/sys/module/fglrx
|
||||
|
||||
|
||||
Name=AMD Catalyst Control Center
|
||||
@@ -44,7 +45,7 @@ Name[sv]=AMD Catalyst Control Center
|
||||
Comment[sv]=Möjliggör konfiguration av inställningar för AMD-grafikmaskinvara.
|
||||
Name[th]=AMD Catalyst Control Center
|
||||
Comment[th]=ยอมให้ตั้งค่าฮาร์ดแวร์กราฟิก AMD
|
||||
-Name[tr]=AMD Catalyst Control Center
|
||||
+Name[tr]=AMD Catalyst Denetim Merkezi
|
||||
Comment[tr]=AMD grafik donanım ayarlarının yapılandırılmasına olanak sağlar.
|
||||
Name[zh_CN]=AMD Catalyst Control Center
|
||||
Comment[zh_CN]=允许配置 AMD 图形硬件设置。
|
||||
Index: work/common/usr/share/applications/amdccclesu.desktop
|
||||
===================================================================
|
||||
--- work.orig/common/usr/share/applications/amdccclesu.desktop
|
||||
+++ work/common/usr/share/applications/amdccclesu.desktop
|
||||
@@ -1,9 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
-Exec=amdxdg-su -c amdcccle
|
||||
+Exec=xdg-su -c amdcccle
|
||||
Categories=GNOME;KDE;GTK;Qt;HardwareSettings;Settings;
|
||||
-Icon=ccc_large
|
||||
+Icon=amdcccle
|
||||
+TryExec=/sys/module/fglrx
|
||||
|
||||
Name=AMD Catalyst Control Center (Administrative)
|
||||
Comment=Allows the configuration of the AMD graphics hardware settings that requires administrative access.
|
||||
@@ -43,7 +44,7 @@ Name[sv]=AMD Catalyst Control Center (Ad
|
||||
Comment[sv]=Möjliggör konfiguration av inställningar för AMD-grafikmaskinvara som kräver administrativ åtkomst.
|
||||
Name[th]=AMD Catalyst Control Center (สิทธิ์ผู้ดูแลระบบ)
|
||||
Comment[th]=ยอมให้ตั้งค่าฮาร์ดแวร์กราฟิก AMD ที่ต้องใช้สิทธิ์ของผู้ดูแลระบบ
|
||||
-Name[tr]=AMD Catalyst Control Center (Yönetici)
|
||||
+Name[tr]=AMD Catalyst Denetim Merkezi (Yönetici)
|
||||
Comment[tr]=Yönetici erişimi gerektiren AMD grafik donanım ayarlarının yapılandırılmasına olanak sağlar.
|
||||
Name[zh_CN]=AMD Catalyst Control Center(管理)
|
||||
Comment[zh_CN]=允许配置需要管理权限才能访问的 AMD 图形硬件设置。
|
||||
@@ -0,0 +1,49 @@
|
||||
|
||||
Already defined in mesa
|
||||
|
||||
Signed-off-by: Thomas Backlund <tmb@mageia.org>
|
||||
|
||||
diff -Nurp fglrx-13.250.18.orig/common/usr/include/GL/glATI.h fglrx-13.250.18/common/usr/include/GL/glATI.h
|
||||
--- fglrx-13.250.18.orig/common/usr/include/GL/glATI.h 2013-12-06 13:46:50.339162515 +0200
|
||||
+++ fglrx-13.250.18/common/usr/include/GL/glATI.h 2013-12-06 13:51:18.621140440 +0200
|
||||
@@ -5367,7 +5367,9 @@ typedef GLvoid (APIENTRY * PFNGLTEXRENDE
|
||||
#define GL_SAMPLE_MASK_VALUE 0x8E52
|
||||
#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59
|
||||
#define GL_TEXTURE_2D_MULTISAMPLE 0x9100
|
||||
+#ifndef GL_PROXY_TEXTURE_2D_MULTISAMPLE
|
||||
#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0X9101
|
||||
+#endif
|
||||
#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102
|
||||
#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103
|
||||
#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E
|
||||
@@ -5385,11 +5387,13 @@ typedef GLvoid (APIENTRY * PFNGLTEXRENDE
|
||||
#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D
|
||||
|
||||
typedef GLvoid (APIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield value);
|
||||
+#if 0
|
||||
typedef GLvoid (APIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat,
|
||||
GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
|
||||
+
|
||||
typedef GLvoid (APIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat,
|
||||
GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
|
||||
-
|
||||
+#endif
|
||||
// GL_EXT_timer_query
|
||||
#define GL_TIME_ELAPSED_EXT 0x88BF
|
||||
|
||||
@@ -6006,6 +6010,7 @@ typedef GLvoid (APIENTRY * PFNGLDEBUGMES
|
||||
typedef GLvoid (APIENTRY * PFNGLDEBUGMESSAGECALLBACKARB)(GLvoid* callback, GLvoid* userParam);
|
||||
typedef GLuint (APIENTRY * PFNGLGETDEBUGMESSAGELOGARB)(GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog);
|
||||
|
||||
+#if 0
|
||||
typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,
|
||||
GLenum type,
|
||||
GLuint id,
|
||||
@@ -6014,6 +6019,7 @@ typedef void (APIENTRY *GLDEBUGPROCARB)(
|
||||
const GLchar* message,
|
||||
GLvoid* userParam);
|
||||
// end ARB_debug_output
|
||||
+#endif
|
||||
|
||||
|
||||
/* ARB_debug_group (KHR_debug) */
|
||||
@@ -0,0 +1,42 @@
|
||||
diff -Nurp fglrx.orig/lib/modules/fglrx/build_mod/firegl_public.c fglrx/lib/modules/fglrx/build_mod/firegl_public.c
|
||||
--- fglrx.orig/lib/modules/fglrx/build_mod/firegl_public.c 2014-09-09 17:10:17.000000000 +0300
|
||||
+++ fglrx/lib/modules/fglrx/build_mod/firegl_public.c 2014-09-23 23:18:51.342432159 +0300
|
||||
@@ -1093,6 +1093,9 @@ static int fglrx_pci_suspend(struct pci_
|
||||
// directly here to allow suspend/resume without X server start.
|
||||
firegl_pci_save_state((KCL_PCI_DevHandle)pdev, privdev);
|
||||
pci_disable_device(pdev);
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
|
||||
+ pci_ignore_hotplug(pdev);
|
||||
+#endif
|
||||
PMSG_EVENT(pdev->dev.power.power_state) = state;
|
||||
}
|
||||
else
|
||||
diff -Nurp fglrx.orig/lib/modules/fglrx/build_mod/kcl_acpi.c fglrx/lib/modules/fglrx/build_mod/kcl_acpi.c
|
||||
--- fglrx.orig/lib/modules/fglrx/build_mod/kcl_acpi.c 2014-09-09 17:10:17.000000000 +0300
|
||||
+++ fglrx/lib/modules/fglrx/build_mod/kcl_acpi.c 2014-09-23 23:45:27.016475868 +0300
|
||||
@@ -840,10 +840,12 @@ static acpi_status KCL_ACPI_Slot_No_Hotp
|
||||
if(tdev != NULL)
|
||||
{
|
||||
device = (acpi_device_adr(tdev) >> 16) & 0xffff;
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 17, 0)
|
||||
if(PCI_SLOT(pdev->devfn) == device)
|
||||
{
|
||||
tdev->flags.no_hotplug = true;
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
#endif
|
||||
return 0;
|
||||
diff -Nurp fglrx.orig/lib/modules/fglrx/build_mod/kcl_pci.c fglrx/lib/modules/fglrx/build_mod/kcl_pci.c
|
||||
--- fglrx.orig/lib/modules/fglrx/build_mod/kcl_pci.c 2014-09-09 17:10:17.000000000 +0300
|
||||
+++ fglrx/lib/modules/fglrx/build_mod/kcl_pci.c 2014-09-23 23:23:32.085208398 +0300
|
||||
@@ -306,6 +306,9 @@ void ATI_API_CALL KCL_PCI_DisableDevice(
|
||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
|
||||
pci_disable_device((struct pci_dev*)dev);
|
||||
#endif
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 17, 0)
|
||||
+ pci_ignore_hotplug((struct pci_dev*)dev);
|
||||
+#endif
|
||||
}
|
||||
|
||||
#if defined(__x86_64__)
|
||||
@@ -0,0 +1,11 @@
|
||||
--- 13.1/common/lib/modules/fglrx/build_mod/firegl_public.c 2013-01-15 22:33:27.000000000 +0100
|
||||
+++ 13.1/common/lib/modules/fglrx/build_mod/firegl_public.c 2014-08-18 20:05:44.327520475 +0200
|
||||
@@ -250,7 +250,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef MODULE_LICENSE
|
||||
-MODULE_LICENSE("Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY");
|
||||
+MODULE_LICENSE("GPL\0Proprietary. (C) 2002 - ATI Technologies, Starnberg, GERMANY");
|
||||
#endif
|
||||
#ifdef MODULE_DEVICE_TABLE
|
||||
MODULE_DEVICE_TABLE(pci, fglrx_pci_table);
|
||||
@@ -0,0 +1,70 @@
|
||||
diff -uNr 14.12/common/lib/modules/fglrx/build_mod/firegl_public.c 14.12_2/common/lib/modules/fglrx/build_mod/firegl_public.c
|
||||
--- 14.12/common/lib/modules/fglrx/build_mod/firegl_public.c 2014-11-28 21:02:10.000000000 +0100
|
||||
+++ 14.12_2/common/lib/modules/fglrx/build_mod/firegl_public.c 2015-03-08 13:30:42.565275902 +0100
|
||||
@@ -4468,8 +4468,13 @@
|
||||
|
||||
if (cpu_has_pge)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
|
||||
cr4 = read_cr4();
|
||||
write_cr4(cr4 & ~X86_CR4_PGE);
|
||||
+#else
|
||||
+ cr4 = __read_cr4();
|
||||
+ __write_cr4(cr4 & ~X86_CR4_PGE);
|
||||
+#endif
|
||||
}
|
||||
__flush_tlb();
|
||||
|
||||
@@ -4482,7 +4487,11 @@
|
||||
write_cr0(cr0 & 0xbfffffff);
|
||||
if (cpu_has_pge)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
|
||||
write_cr4(cr4);
|
||||
+#else
|
||||
+ __write_cr4(cr4);
|
||||
+#endif
|
||||
}
|
||||
local_irq_restore(flags);
|
||||
|
||||
@@ -4509,8 +4518,13 @@
|
||||
|
||||
if (cpu_has_pge)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
|
||||
cr4 = read_cr4();
|
||||
write_cr4(cr4 & ~X86_CR4_PGE);
|
||||
+#else
|
||||
+ cr4 = __read_cr4();
|
||||
+ __write_cr4(cr4 & ~X86_CR4_PGE);
|
||||
+#endif
|
||||
}
|
||||
__flush_tlb();
|
||||
|
||||
@@ -4522,7 +4536,11 @@
|
||||
write_cr0(cr0 & 0xbfffffff);
|
||||
if (cpu_has_pge)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
|
||||
write_cr4(cr4);
|
||||
+#else
|
||||
+ __write_cr4(cr4);
|
||||
+#endif
|
||||
}
|
||||
local_irq_restore(flags);
|
||||
|
||||
diff -uNr 14.12/common/lib/modules/fglrx/build_mod/kcl_str.c 14.12_2/common/lib/modules/fglrx/build_mod/kcl_str.c
|
||||
--- 14.12/common/lib/modules/fglrx/build_mod/kcl_str.c 2014-11-28 21:02:10.000000000 +0100
|
||||
+++ 14.12_2/common/lib/modules/fglrx/build_mod/kcl_str.c 2015-03-08 13:25:11.568396701 +0100
|
||||
@@ -169,7 +169,11 @@
|
||||
const char* s2,
|
||||
KCL_TYPE_SizeSigned count)
|
||||
{
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,0,0)
|
||||
return strnicmp(s1, s2, count);
|
||||
+#else
|
||||
+ return strncasecmp(s1, s2, count);
|
||||
+#endif
|
||||
}
|
||||
|
||||
/** \brief Locate character in string
|
||||
@@ -0,0 +1,11 @@
|
||||
--- 13.4/common/lib/modules/fglrx/build_mod/firegl_public.c 2013-04-16 23:29:55.000000000 +0200
|
||||
+++ 13.4/common/lib/modules/fglrx/build_mod/firegl_public.c 2013-05-21 17:05:34.726681102 +0200
|
||||
@@ -93,7 +93,7 @@
|
||||
and they use different config options. These options can only be enabled
|
||||
on x86_64 with newer 2.6 kernels (2.6.23 for intel, 2.6.26 for amd).
|
||||
*/
|
||||
-#if defined(CONFIG_AMD_IOMMU) || defined(CONFIG_DMAR)
|
||||
+#if defined(CONFIG_AMD_IOMMU) || defined(CONFIG_INTEL_IOMMU)
|
||||
#define FIREGL_DMA_REMAPPING
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,90 @@
|
||||
--- 13.4/common/lib/modules/fglrx/build_mod/kcl_agp.c 2013-05-24 16:45:52.236740084 -0400
|
||||
+++ 13.4/common/lib/modules/fglrx/build_mod/kcl_agp.c 2013-05-24 16:49:29.283579408 -0400
|
||||
@@ -56,6 +56,43 @@ unsigned int KCL_AGP_IsInUse(void)
|
||||
return kcl_agp_is_in_use;
|
||||
}
|
||||
|
||||
+/** \brief Find AGP caps registers in PCI config space
|
||||
+ ** \param dev PCI device handle
|
||||
+ ** \return Positive register index on success, negative errno on error
|
||||
+ */
|
||||
+int ATI_API_CALL KCL_AGP_FindCapsRegisters(KCL_PCI_DevHandle dev)
|
||||
+{
|
||||
+ u8 capndx;
|
||||
+ u32 cap_id;
|
||||
+
|
||||
+ if (!dev)
|
||||
+ {
|
||||
+ return -ENODEV;
|
||||
+ }
|
||||
+
|
||||
+ pci_read_config_byte((struct pci_dev*)dev, 0x34, &capndx);
|
||||
+
|
||||
+ if (capndx == 0x00)
|
||||
+ {
|
||||
+ return -ENODATA;
|
||||
+ }
|
||||
+
|
||||
+ do
|
||||
+ { // search capability list for AGP caps
|
||||
+ pci_read_config_dword((struct pci_dev*)dev, capndx, &cap_id);
|
||||
+
|
||||
+ if ((cap_id & 0xff) == 0x02)
|
||||
+ {
|
||||
+ return capndx;
|
||||
+ }
|
||||
+
|
||||
+ capndx = (cap_id >> 8) & 0xff;
|
||||
+ }
|
||||
+ while (capndx != 0x00);
|
||||
+
|
||||
+ return -ENODATA;
|
||||
+}
|
||||
+
|
||||
#if defined(CONFIG_AGP) || defined(CONFIG_AGP_MODULE)
|
||||
|
||||
typedef struct {
|
||||
@@ -272,43 +309,6 @@ int ATI_API_CALL KCL_AGP_Enable(unsigned
|
||||
}
|
||||
}
|
||||
|
||||
-/** \brief Find AGP caps registers in PCI config space
|
||||
- ** \param dev PCI device handle
|
||||
- ** \return Positive register index on success, negative errno on error
|
||||
- */
|
||||
-int ATI_API_CALL KCL_AGP_FindCapsRegisters(KCL_PCI_DevHandle dev)
|
||||
-{
|
||||
- u8 capndx;
|
||||
- u32 cap_id;
|
||||
-
|
||||
- if (!dev)
|
||||
- {
|
||||
- return -ENODEV;
|
||||
- }
|
||||
-
|
||||
- pci_read_config_byte((struct pci_dev*)dev, 0x34, &capndx);
|
||||
-
|
||||
- if (capndx == 0x00)
|
||||
- {
|
||||
- return -ENODATA;
|
||||
- }
|
||||
-
|
||||
- do
|
||||
- { // search capability list for AGP caps
|
||||
- pci_read_config_dword((struct pci_dev*)dev, capndx, &cap_id);
|
||||
-
|
||||
- if ((cap_id & 0xff) == 0x02)
|
||||
- {
|
||||
- return capndx;
|
||||
- }
|
||||
-
|
||||
- capndx = (cap_id >> 8) & 0xff;
|
||||
- }
|
||||
- while (capndx != 0x00);
|
||||
-
|
||||
- return -ENODATA;
|
||||
-}
|
||||
-
|
||||
/** \brief Get AGP caps
|
||||
** \param dev PCI device handle
|
||||
** \param caps pointer to caps vector
|
||||
@@ -0,0 +1,293 @@
|
||||
diff -Nur common/lib/modules/fglrx/build_mod/drmP.h common-r1/lib/modules/fglrx/build_mod/drmP.h
|
||||
--- common/lib/modules/fglrx/build_mod/drmP.h 2013-05-15 09:26:23.555752577 +0300
|
||||
+++ common-r1/lib/modules/fglrx/build_mod/drmP.h 2013-05-16 10:39:17.496212055 +0300
|
||||
@@ -901,10 +901,6 @@
|
||||
int DRM(stub_unregister)(int minor);
|
||||
|
||||
/* Proc support (drm_proc.h) */
|
||||
-extern struct proc_dir_entry *DRM(proc_init)(drm_device_t *dev,
|
||||
- int minor,
|
||||
- struct proc_dir_entry *root,
|
||||
- struct proc_dir_entry **dev_root);
|
||||
extern int DRM(proc_cleanup)(int minor,
|
||||
struct proc_dir_entry *root,
|
||||
struct proc_dir_entry *dev_root);
|
||||
diff -Nur common/lib/modules/fglrx/build_mod/drm_proc.h common-r1/lib/modules/fglrx/build_mod/drm_proc.h
|
||||
--- common/lib/modules/fglrx/build_mod/drm_proc.h 2013-05-15 09:26:23.555752577 +0300
|
||||
+++ common-r1/lib/modules/fglrx/build_mod/drm_proc.h 2013-05-19 02:16:16.584406160 +0300
|
||||
@@ -75,61 +75,6 @@
|
||||
#define DRM_PROC_ENTRIES (sizeof(DRM(proc_list))/sizeof(DRM(proc_list)[0]))
|
||||
|
||||
/**
|
||||
- * Initialize the DRI proc filesystem for a device.
|
||||
- *
|
||||
- * \param dev DRM device.
|
||||
- * \param minor device minor number.
|
||||
- * \param root DRI proc dir entry.
|
||||
- * \param dev_root resulting DRI device proc dir entry.
|
||||
- * \return root entry pointer on success, or NULL on failure.
|
||||
- *
|
||||
- * Create the DRI proc root entry "/proc/ati", the device proc root entry
|
||||
- * "/proc/ati/%minor%/", and each entry in proc_list as
|
||||
- * "/proc/ati/%minor%/%name%".
|
||||
- */
|
||||
-struct proc_dir_entry *DRM(proc_init)(drm_device_t *dev, int minor,
|
||||
- struct proc_dir_entry *root,
|
||||
- struct proc_dir_entry **dev_root)
|
||||
-{
|
||||
- struct proc_dir_entry *ent;
|
||||
- int i, j;
|
||||
- char name[64];
|
||||
-
|
||||
- if (!minor) root = create_proc_entry("dri", S_IFDIR, NULL);
|
||||
- if (!root) {
|
||||
- DRM_ERROR("Cannot create /proc/ati\n");
|
||||
- return NULL;
|
||||
- }
|
||||
-
|
||||
- sprintf(name, "%d", minor);
|
||||
- *dev_root = create_proc_entry(name, S_IFDIR, root);
|
||||
- if (!*dev_root) {
|
||||
- DRM_ERROR("Cannot create /proc/ati/%s\n", name);
|
||||
- return NULL;
|
||||
- }
|
||||
-
|
||||
- for (i = 0; i < DRM_PROC_ENTRIES; i++) {
|
||||
- ent = create_proc_entry(DRM(proc_list)[i].name,
|
||||
- S_IFREG|S_IRUGO, *dev_root);
|
||||
- if (!ent) {
|
||||
- DRM_ERROR("Cannot create /proc/ati/%s/%s\n",
|
||||
- name, DRM(proc_list)[i].name);
|
||||
- for (j = 0; j < i; j++)
|
||||
- remove_proc_entry(DRM(proc_list)[i].name,
|
||||
- *dev_root);
|
||||
- remove_proc_entry(name, root);
|
||||
- if (!minor) remove_proc_entry("dri", NULL);
|
||||
- return NULL;
|
||||
- }
|
||||
- ent->read_proc = DRM(proc_list)[i].f;
|
||||
- ent->data = dev;
|
||||
- }
|
||||
-
|
||||
- return root;
|
||||
-}
|
||||
-
|
||||
-
|
||||
-/**
|
||||
* Cleanup the proc filesystem resources.
|
||||
*
|
||||
* \param minor device minor number.
|
||||
diff -Nur common/lib/modules/fglrx/build_mod/firegl_public.c common-r1/lib/modules/fglrx/build_mod/firegl_public.c
|
||||
--- common/lib/modules/fglrx/build_mod/firegl_public.c 2013-05-15 09:26:23.545752925 +0300
|
||||
+++ common-r1/lib/modules/fglrx/build_mod/firegl_public.c 2013-05-19 03:07:10.236552522 +0300
|
||||
@@ -583,6 +583,202 @@
|
||||
{ "NULL", NULL, NULL} // Terminate List!!!
|
||||
};
|
||||
|
||||
+
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
|
||||
+typedef int (read_proc_t)(char *page, char **start, off_t off, int count, int *eof, void *data);
|
||||
+typedef int (write_proc_t)(struct file *file, const char __user *buffer, unsigned long count, void *data);
|
||||
+#else
|
||||
+#define PDE_DATA(inode) (PDE((inode))->data)
|
||||
+#endif
|
||||
+
|
||||
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
|
||||
+typedef struct {
|
||||
+ read_proc_t *read_func;
|
||||
+ write_proc_t *write_func;
|
||||
+ void *data;
|
||||
+} gentoo_proc_wrapper_t;
|
||||
+
|
||||
+#define GENTOO_PROC_WRAPPER_OVERFLOW_MAGIC 939750305
|
||||
+
|
||||
+static ssize_t gentoo_proc_wrapper_read (struct file *myfile, char __user *buffer, size_t count, loff_t *offset) {
|
||||
+ int is_eof=0, retval;
|
||||
+ char *start, *usebuffer=NULL;
|
||||
+ gentoo_proc_wrapper_t* wrapper_data=(gentoo_proc_wrapper_t*)(myfile->private_data);
|
||||
+ if (PAGE_SIZE<*offset) {
|
||||
+ printk(KERN_ERR "Trying to read beyond 4k on proc\n");
|
||||
+ return -EIO;
|
||||
+ }
|
||||
+ //printk(KERN_NOTICE " call with: dev %p, func %p\n", wrapper_data->data, wrapper_data->read_func);
|
||||
+
|
||||
+ usebuffer=kmalloc(2*PAGE_SIZE, GFP_KERNEL);
|
||||
+ if (!usebuffer)
|
||||
+ return -ENOMEM;
|
||||
+ ((u32*)usebuffer)[1024]=GENTOO_PROC_WRAPPER_OVERFLOW_MAGIC;
|
||||
+
|
||||
+ retval=wrapper_data->read_func(usebuffer, &start, *offset, count, &is_eof, wrapper_data->data);
|
||||
+
|
||||
+ BUG_ON(GENTOO_PROC_WRAPPER_OVERFLOW_MAGIC != ((u32*)usebuffer)[1024]);
|
||||
+
|
||||
+ if (0 > retval)
|
||||
+ {
|
||||
+ printk(KERN_ERR "Proc read failed with %d", retval);
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ if (copy_to_user(buffer, start, retval)) {
|
||||
+ printk(KERN_NOTICE "copy to user failed in amd drivers proc code\n");
|
||||
+ retval=-EFAULT;
|
||||
+ goto out;
|
||||
+ }
|
||||
+ *offset+=retval;
|
||||
+
|
||||
+out:
|
||||
+ if (usebuffer)
|
||||
+ kfree(usebuffer);
|
||||
+ return retval;
|
||||
+}
|
||||
+static ssize_t gentoo_proc_wrapper_write (struct file *myfile, const char __user *buffer, size_t count, loff_t *offset) {
|
||||
+ gentoo_proc_wrapper_t* wrapper_data=(gentoo_proc_wrapper_t*)(myfile->private_data);
|
||||
+ int retval=0;
|
||||
+ void *usebuffer=NULL;
|
||||
+
|
||||
+ BUG_ON(*offset);
|
||||
+ if (!wrapper_data->write_func)
|
||||
+ return -EPERM;
|
||||
+
|
||||
+ usebuffer=kmalloc(count, GFP_KERNEL);
|
||||
+ if (!usebuffer)
|
||||
+ return -ENOMEM;
|
||||
+ if (copy_from_user(usebuffer, buffer, count)) {
|
||||
+ printk(KERN_NOTICE "copy from user failed in amd drivers proc code\n");
|
||||
+ retval=-EFAULT;
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ retval=wrapper_data->write_func(myfile, buffer, count, wrapper_data->data);
|
||||
+ *offset+=retval;
|
||||
+out:
|
||||
+ if (usebuffer)
|
||||
+ kfree(usebuffer);
|
||||
+ return retval;
|
||||
+}
|
||||
+static int gentoo_proc_wrapper_open(struct inode *myinode, struct file *myfile) {
|
||||
+ myfile->private_data=PDE_DATA(myinode);
|
||||
+ return generic_file_open(myinode, myfile);
|
||||
+}
|
||||
+struct file_operations gentoo_proc_fops = {
|
||||
+ .read=gentoo_proc_wrapper_read,
|
||||
+ .write=gentoo_proc_wrapper_write,
|
||||
+ .open=gentoo_proc_wrapper_open,
|
||||
+};
|
||||
+
|
||||
+static void *gentoo_proc_wrapper_data(read_proc_t *reader, write_proc_t *writer, void *mydata) {
|
||||
+ gentoo_proc_wrapper_t *retval=kmalloc(sizeof(gentoo_proc_wrapper_t), GFP_KERNEL);
|
||||
+ if (!retval)
|
||||
+ return retval;
|
||||
+ retval->read_func=reader;
|
||||
+ retval->write_func=writer;
|
||||
+ retval->data=mydata;
|
||||
+ return retval;
|
||||
+}
|
||||
+
|
||||
+static struct proc_dir_entry *firegl_proc_init( device_t *dev,
|
||||
+ int minor,
|
||||
+ struct proc_dir_entry *root,
|
||||
+ struct proc_dir_entry **dev_root,
|
||||
+ kcl_proc_list_t *proc_list ) // proc_list must be terminated!
|
||||
+{
|
||||
+ struct proc_dir_entry *ent;
|
||||
+ char name[64];
|
||||
+ kcl_proc_list_t *list = proc_list;
|
||||
+ void *tempdata;
|
||||
+ KCL_DEBUG1(FN_FIREGL_PROC, "minor %d, proc_list 0x%08lx\n", minor, (unsigned long)proc_list);
|
||||
+ if (!minor)
|
||||
+ {
|
||||
+ root = proc_mkdir("ati", NULL);
|
||||
+ }
|
||||
+
|
||||
+ if (!root)
|
||||
+ {
|
||||
+ KCL_DEBUG_ERROR("Cannot create /proc/ati\n");
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ if (minor == 0)
|
||||
+ {
|
||||
+ // Global major debice number entry
|
||||
+ tempdata=gentoo_proc_wrapper_data((read_proc_t*)firegl_major_proc_read, NULL, NULL);
|
||||
+ if (!tempdata)
|
||||
+ return NULL;
|
||||
+ ent = proc_create_data("major", S_IFREG|S_IRUGO, root, &gentoo_proc_fops, tempdata);
|
||||
+ if (!ent)
|
||||
+ {
|
||||
+ remove_proc_entry("ati", NULL);
|
||||
+ KCL_DEBUG_ERROR("Cannot create /proc/ati/major\n");
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ sprintf(name, "%d", minor);
|
||||
+ *dev_root = proc_mkdir(name, root);
|
||||
+ if (!*dev_root) {
|
||||
+ remove_proc_entry("major", root);
|
||||
+ remove_proc_entry("ati", NULL);
|
||||
+ KCL_DEBUG_ERROR("Cannot create /proc/ati/%s\n", name);
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ while (list->f || list->fops)
|
||||
+ {
|
||||
+ struct file_operations *my_fops = &gentoo_proc_fops;
|
||||
+ if (list->fops)
|
||||
+ {
|
||||
+ my_fops = (struct file_operations*)list->fops;
|
||||
+ tempdata=(dev->pubdev.signature == FGL_DEVICE_SIGNATURE)? firegl_find_device(minor) : (dev);
|
||||
+ }
|
||||
+ else {
|
||||
+ BUG_ON(!list->f);
|
||||
+ tempdata=gentoo_proc_wrapper_data((read_proc_t*)list->f, NULL, (dev->pubdev.signature == FGL_DEVICE_SIGNATURE)? firegl_find_device(minor) : (dev) );
|
||||
+ if (!tempdata)
|
||||
+ return NULL;
|
||||
+ }
|
||||
+ //printk(KERN_NOTICE "name %s, dev %p, func %p, data %p\n", list->name, (dev->pubdev.signature == FGL_DEVICE_SIGNATURE)? firegl_find_device(minor) : (dev), list->f, tempdata);
|
||||
+ ent = proc_create_data(list->name, S_IFREG|S_IRUGO, *dev_root, my_fops, tempdata);
|
||||
+
|
||||
+ if (!ent)
|
||||
+ {
|
||||
+ KCL_DEBUG_ERROR("Cannot create /proc/ati/%s/%s\n", name, list->name);
|
||||
+ while (proc_list != list)
|
||||
+ {
|
||||
+ remove_proc_entry(proc_list->name, *dev_root);
|
||||
+ proc_list++;
|
||||
+ }
|
||||
+ remove_proc_entry(name, root);
|
||||
+ if (!minor)
|
||||
+ {
|
||||
+ remove_proc_entry("major", root);
|
||||
+ remove_proc_entry("ati", NULL);
|
||||
+ }
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ list++;
|
||||
+ }
|
||||
+
|
||||
+ if (minor == 0)
|
||||
+ {
|
||||
+ // Global debug entry, only create it once
|
||||
+ tempdata=gentoo_proc_wrapper_data((read_proc_t*)firegl_debug_proc_read_wrap, (write_proc_t*)firegl_debug_proc_write_wrap, dev);
|
||||
+ if (!tempdata)
|
||||
+ return NULL;
|
||||
+ ent=proc_create_data("debug", S_IFREG|S_IRUGO, root, &gentoo_proc_fops, tempdata);
|
||||
+ if (!ent)
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ return root;
|
||||
+}
|
||||
+#else
|
||||
static struct proc_dir_entry *firegl_proc_init( device_t *dev,
|
||||
int minor,
|
||||
struct proc_dir_entry *root,
|
||||
@@ -677,6 +873,7 @@
|
||||
|
||||
return root;
|
||||
}
|
||||
+#endif
|
||||
|
||||
static int firegl_proc_cleanup( int minor,
|
||||
struct proc_dir_entry *root,
|
||||
@@ -0,0 +1,10 @@
|
||||
--- 10.10/common/lib/modules/fglrx/build_mod/2.6.x/Makefile 2010-09-22 09:15:33.000000000 +0200
|
||||
+++ 10.10/common/lib/modules/fglrx/build_mod/2.6.x/Makefile 2010-10-01 17:57:21.057820899 +0200
|
||||
@@ -66,6 +66,7 @@
|
||||
-DFGL_GART_RESERVED_SLOT \
|
||||
-DFGL_LINUX253P1_VMA_API \
|
||||
-DPAGE_ATTR_FIX=$(PAGE_ATTR_FIX) \
|
||||
+ -DCOMPAT_ALLOC_USER_SPACE=$(COMPAT_ALLOC_USER_SPACE) \
|
||||
|
||||
ifeq ($(KERNELRELEASE),)
|
||||
# on first call from remote location we get into this path
|
||||
@@ -0,0 +1,22 @@
|
||||
--- a/firegl_public.c
|
||||
+++ b/firegl_public.c
|
||||
@@ -4820,8 +4824,8 @@ static unsigned long kasSetExecutionLeve
|
||||
{
|
||||
unsigned long orig_level;
|
||||
|
||||
- orig_level = __get_cpu_var(kasExecutionLevel);
|
||||
- __get_cpu_var(kasExecutionLevel) = level;
|
||||
+ orig_level = __this_cpu_read(kasExecutionLevel);
|
||||
+ __this_cpu_write(kasExecutionLevel, level);
|
||||
|
||||
return orig_level;
|
||||
}
|
||||
@@ -4833,7 +4837,7 @@ static unsigned long kasSetExecutionLeve
|
||||
*/
|
||||
static unsigned long kas_GetExecutionLevel(void)
|
||||
{
|
||||
- return __get_cpu_var(kasExecutionLevel);
|
||||
+ return __this_cpu_read(kasExecutionLevel);
|
||||
}
|
||||
|
||||
/** \brief Type definition for kas_spin_lock() parameter */
|
||||
@@ -0,0 +1,2 @@
|
||||
# Fail if radeon loaded
|
||||
install fglrx if /bin/grep -qw "^radeon" /proc/modules; then /bin/false; else /sbin/modprobe -i fglrx $CMDLINE_OPTS; fi
|
||||
Reference in New Issue
Block a user