commit eddc674f99d5c553f78abd73061ffa6b51c9c536 Author: Jan Rękorajski <bagg...@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 _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit