[packages/xorg-driver-video-fglrx] - fix building with linux 3.10 - rel 13
baggins
baggins at pld-linux.org
Sun Aug 25 12:13:53 CEST 2013
commit eddc674f99d5c553f78abd73061ffa6b51c9c536
Author: Jan Rękorajski <baggins at pld-linux.org>
Date: Sun Aug 25 12:13:32 2013 +0200
- fix building with linux 3.10
- rel 13
linux-3.10.patch | 226 +++++++++++++++++++++++++++++++++++++++++++
xorg-driver-video-fglrx.spec | 4 +-
2 files changed, 229 insertions(+), 1 deletion(-)
---
diff --git a/xorg-driver-video-fglrx.spec b/xorg-driver-video-fglrx.spec
index d23b16a..aaa3797 100644
--- a/xorg-driver-video-fglrx.spec
+++ b/xorg-driver-video-fglrx.spec
@@ -27,7 +27,7 @@
%define intver 12.104
-%define rel 12
+%define rel 13
%define pname xorg-driver-video-fglrx
Summary: Linux Drivers for AMD/ATI graphics accelerators
Summary(pl.UTF-8): Sterowniki do akceleratorów graficznych AMD/ATI
@@ -53,6 +53,7 @@ Patch4: %{pname}-nofinger.patch
Patch5: %{pname}-GPL-only.patch
Patch7: %{pname}-kernel-fpu.patch
Patch8: linux-3.7.patch
+Patch9: linux-3.10.patch
URL: http://ati.amd.com/support/drivers/linux/linux-radeon.html
%{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20.2}
BuildRequires: rpmbuild(macros) >= 1.659
@@ -200,6 +201,7 @@ cp -p arch/%{arch_dir}/lib/modules/fglrx/build_mod/* common/lib/modules/fglrx/bu
%patch5 -p1
%patch7 -p0
%patch8 -p1
+%patch9 -p1
install -d common{%{_prefix}/{%{_lib},bin,sbin},/etc}
cp -a %{x11ver}%{arch_sufix}/usr/X11R6/%{_lib}/* common%{_libdir}
diff --git a/linux-3.10.patch b/linux-3.10.patch
new file mode 100644
index 0000000..155b483
--- /dev/null
+++ b/linux-3.10.patch
@@ -0,0 +1,226 @@
+--- 13.4/common/lib/modules/fglrx/build_mod/drm_proc.h
++++ 13.4/common/lib/modules/fglrx/build_mod/drm_proc.h
+@@ -94,23 +95,34 @@ struct proc_dir_entry *DRM(proc_init)(drm_device_t *dev, int minor,
+ struct proc_dir_entry *ent;
+ int i, j;
+ char name[64];
+-
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ if (!minor) root = create_proc_entry("dri", S_IFDIR, NULL);
++#else
++ if (!minor) root = proc_mkdir("dri", NULL);
++#endif
+ if (!root) {
+ DRM_ERROR("Cannot create /proc/ati\n");
+ return NULL;
+ }
+
+ sprintf(name, "%d", minor);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ *dev_root = create_proc_entry(name, S_IFDIR, root);
++#else
++ *dev_root = proc_mkdir(name, root);
++#endif
+ if (!*dev_root) {
+ DRM_ERROR("Cannot create /proc/ati/%s\n", name);
+ return NULL;
+ }
+-
+ for (i = 0; i < DRM_PROC_ENTRIES; i++) {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ ent = create_proc_entry(DRM(proc_list)[i].name,
+ S_IFREG|S_IRUGO, *dev_root);
++#else
++ ent = proc_create_data(DRM(proc_list)[i].name,
++ S_IFREG|S_IRUGO, *dev_root, &firegl_fops, dev);
++#endif
+ if (!ent) {
+ DRM_ERROR("Cannot create /proc/ati/%s/%s\n",
+ name, DRM(proc_list)[i].name);
+@@ -121,10 +133,11 @@ struct proc_dir_entry *DRM(proc_init)(drm_device_t *dev, int minor,
+ if (!minor) remove_proc_entry("dri", NULL);
+ return NULL;
+ }
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ ent->read_proc = DRM(proc_list)[i].f;
+ ent->data = dev;
++#endif
+ }
+-
+ return root;
+ }
+
+--- 13.4/common/lib/modules/fglrx/build_mod/firegl_public.c
++++ 13.4/common/lib/modules/fglrx/build_mod/firegl_public.c
+@@ -520,12 +520,23 @@ READ_PROC_WRAP(firegl_lock_info)
+ #ifdef DEBUG
+ READ_PROC_WRAP(drm_bq_info)
+ #endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ READ_PROC_WRAP(firegl_debug_proc_read)
++#endif
+ READ_PROC_WRAP(firegl_bios_version)
+ READ_PROC_WRAP(firegl_interrupt_info)
+ READ_PROC_WRAP(firegl_ptm_info)
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ static int firegl_debug_proc_write_wrap(void* file, const char *buffer, unsigned long count, void *data)
++#else
++static int firegl_debug_proc_read_wrap(struct seq_file *m, void* data)
++{
++ return firegl_debug_proc_read(m->buf, m->from, m->index, m->size, m->size - m->count, data);
++}
++
++static ssize_t firegl_debug_proc_write_wrap(struct file *file, const char *buffer, size_t count, void *data)
++#endif
+ {
+ return firegl_debug_proc_write(file, buffer, count, data);
+ }
+@@ -543,9 +554,15 @@ static int firegl_debug_proc_write_wrap(void* file, const char *buffer, unsigned
+ *
+ * \return number of bytes written
+ */
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ static int firegl_major_proc_read(char *buf, char **start, kcl_off_t offset,
+ int request, int* eof, void* data)
++#else
++static int firegl_major_proc_read(struct seq_file *m, void* data)
++#endif
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ int len = 0; // For ProcFS: fill buf from the beginning
+
+ KCL_DEBUG1(FN_FIREGL_PROC, "offset %d\n", (int)offset);
+@@ -561,8 +578,10 @@ static int firegl_major_proc_read(char *buf, char **start, kcl_off_t offset,
+
+ len = snprintf(buf, request, "%d\n", major);
+
++#else
++ int len = seq_printf(m, "%d\n", major);
++#endif
+ KCL_DEBUG1(FN_FIREGL_PROC, "return len=%i\n",len);
+-
+ return len;
+ }
+
+@@ -583,6 +602,29 @@ kcl_proc_list_t KCL_PROC_FileList[] =
+ { "NULL", NULL, NULL} // Terminate List!!!
+ };
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)
++static int firegl_major_proc_open(struct inode *inode, struct file *file){
++ return single_open(file, firegl_major_proc_read, NULL);
++}
++
++static const struct file_operations firegl_major_fops = {
++ .open = firegl_major_proc_open,
++ .read = seq_read,
++ .llseek = seq_lseek,
++};
++
++static int firegl_debug_proc_open(struct inode *inode, struct file *file){
++ return single_open(file, firegl_debug_proc_read_wrap, NULL);
++}
++
++static const struct file_operations firegl_debug_fops = {
++ .open = firegl_debug_proc_open,
++ .write = firegl_debug_proc_write_wrap,
++ .read = seq_read,
++ .llseek = seq_lseek,
++};
++#endif
++
+ static struct proc_dir_entry *firegl_proc_init( device_t *dev,
+ int minor,
+ struct proc_dir_entry *root,
+@@ -595,7 +637,11 @@ static struct proc_dir_entry *firegl_proc_init( device_t *dev,
+ KCL_DEBUG1(FN_FIREGL_PROC, "minor %d, proc_list 0x%08lx\n", minor, (unsigned long)proc_list);
+ if (!minor)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ root = create_proc_entry("ati", S_IFDIR, NULL);
++#else
++ root = proc_mkdir("ati", NULL);
++#endif
+ }
+
+ if (!root)
+@@ -607,18 +653,28 @@ static struct proc_dir_entry *firegl_proc_init( device_t *dev,
+ if (minor == 0)
+ {
+ // Global major debice number entry
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ ent = create_proc_entry("major", S_IFREG|S_IRUGO, root);
++#else
++ ent = proc_create("major", S_IFREG|S_IRUGO, root, &firegl_major_fops);
++#endif
+ if (!ent)
+ {
+ remove_proc_entry("ati", NULL);
+ KCL_DEBUG_ERROR("Cannot create /proc/ati/major\n");
+ return NULL;
+ }
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ ent->read_proc = (read_proc_t*)firegl_major_proc_read;
++#endif
+ }
+
+ sprintf(name, "%d", minor);
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ *dev_root = create_proc_entry(name, S_IFDIR, root);
++#else
++ *dev_root = proc_mkdir(name, root);
++#endif
+ if (!*dev_root) {
+ remove_proc_entry("major", root);
+ remove_proc_entry("ati", NULL);
+@@ -628,7 +684,12 @@ static struct proc_dir_entry *firegl_proc_init( device_t *dev,
+
+ while (list->f || list->fops)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ ent = create_proc_entry(list->name, S_IFREG|S_IRUGO, *dev_root);
++#else
++ ent = proc_create_data(list->name, S_IFREG|S_IRUGO, *dev_root, &firegl_fops,
++ (dev->pubdev.signature == FGL_DEVICE_SIGNATURE)? firegl_find_device(minor) : (dev));
++#endif
+ if (!ent)
+ {
+ KCL_DEBUG_ERROR("Cannot create /proc/ati/%s/%s\n", name, list->name);
+@@ -646,6 +707,7 @@ static struct proc_dir_entry *firegl_proc_init( device_t *dev,
+ return NULL;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ if (list->f)
+ {
+ ent->read_proc = (read_proc_t*)list->f;
+@@ -659,19 +721,25 @@ static struct proc_dir_entry *firegl_proc_init( device_t *dev,
+ {
+ ent->data = (dev->pubdev.signature == FGL_DEVICE_SIGNATURE)? firegl_find_device(minor) : (dev);
+ }
+-
++#endif
+ list++;
+ }
+
+ if (minor == 0)
+ {
+ // Global debug entry, only create it once
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ ent = create_proc_entry("debug", S_IFREG|S_IRUGO, root);
+- if (ent)
++#else
++ ent = proc_create_data("debug", S_IFREG|S_IRUGO, root, &firegl_debug_fops, dev);
++#endif
++ if (ent)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
+ ent->read_proc = (read_proc_t*)firegl_debug_proc_read_wrap;
+ ent->write_proc = (write_proc_t*)firegl_debug_proc_write_wrap;
+ ent->data = dev;
++#endif
+ }
+ }
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/xorg-driver-video-fglrx.git/commitdiff/eddc674f99d5c553f78abd73061ffa6b51c9c536
More information about the pld-cvs-commit
mailing list