diff options
Diffstat (limited to 'media-libs/svgalib/files/svgalib-1.9.25-linux_2.6.patch')
-rw-r--r-- | media-libs/svgalib/files/svgalib-1.9.25-linux_2.6.patch | 289 |
1 files changed, 289 insertions, 0 deletions
diff --git a/media-libs/svgalib/files/svgalib-1.9.25-linux_2.6.patch b/media-libs/svgalib/files/svgalib-1.9.25-linux_2.6.patch new file mode 100644 index 000000000000..20ab1fe1ed16 --- /dev/null +++ b/media-libs/svgalib/files/svgalib-1.9.25-linux_2.6.patch @@ -0,0 +1,289 @@ + - get rid of warning when linux/device.h doesnt exist + - touch up the Makefile to let the ebuild handle the module details + - fix support with io remap stuff in newer kernels + - dont include headers that dont exist in 2.4.x kernels + - use module_param() for 2.6.x and MODULE_PARM() for all others + - dont declare all_devices as static since it is exported + - dont include <linux/config.h> as the build system does it for us + - in lrmi, map old flag names to new names for versions >= 2.6.26 + +--- svgalib/kernel/svgalib_helper/Makefile ++++ svgalib/kernel/svgalib_helper/Makefile +@@ -25,7 +25,7 @@ + endif + + +-CLASS_SIMPLE := $(shell grep class_simple_create $(KDIR)/include/linux/device.h) ++CLASS_SIMPLE := $(shell grep -s class_simple_create $(KDIR)/include/linux/device.h) + + ifneq ($(CLASS_SIMPLE),) + CLASS_CFLAGS = -DCLASS_SIMPLE=1 +--- svgalib/kernel/svgalib_helper/Makefile.alt ++++ svgalib/kernel/svgalib_helper/Makefile.alt +@@ -37,7 +37,7 @@ + CFLAGS += -DSVGALIB_HELPER_MAJOR=$(SVGALIB_HELPER_MAJOR) + + ifeq (1,$(findstring 1,$(MODVER))) +- CFLAGS += -DMODVERSIONS -include $(INCLUDEDIR)/linux/modversions.h ++ CFLAGS += -DMODVERSIONS -DCONFIG_MODVERSIONS=1 + endif + + TARGET = svgalib_helper +@@ -50,7 +50,8 @@ + endif + endif + +-all: .depend $(OBJS) ++modules: $(OBJS) ++all: .depend modules + + $(TARGET).o: $(SRC:.c=.o) + $(LD) -r $^ -o $@ +@@ -61,8 +62,8 @@ + install: device modules_install + + modules_install: $(OBJS) +- mkdir -p /lib/modules/$(VER)/kernel/misc +- install -m 0644 -c $(OBJS) /lib/modules/$(VER)/kernel/misc ++ mkdir -p $(TOPDIR)/lib/modules/$(VER)/kernel/misc ++ install -m 0644 -c $(OBJS) $(TOPDIR)/lib/modules/$(VER)/kernel/misc + + device: + rm -f /dev/svgalib_helper* /dev/svga_helper* /dev/svga /dev/svga? +--- svgalib/kernel/svgalib_helper/kernel26compat.h ++++ svgalib/kernel/svgalib_helper/kernel26compat.h +@@ -10,7 +10,7 @@ + # define PCI_GET_CLASS pci_find_class + # define PCI_GET_DEVICE pci_find_device + +-# if defined (PG_chainlock) ++# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,3) + # define my_io_remap_page_range(vma, start, ofs, len, prot) \ + io_remap_page_range(vma,start,ofs,len,prot) + # else +@@ -70,6 +70,7 @@ + + /* These are also not present in 2.6 kernels ... */ + #if (!defined _LINUX_DEVFS_FS_KERNEL_H) || (defined KERNEL_2_6) ++#include <linux/fs.h> + static inline int devfs_register_chrdev (unsigned int major, const char *name, + struct file_operations *fops) + { +@@ -77,7 +78,12 @@ + } + static inline int devfs_unregister_chrdev (unsigned int major,const char *name) + { +- return unregister_chrdev (major, name); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++ return unregister_chrdev (major, name); ++#else ++ unregister_chrdev (major, name); ++ return 0; ++#endif + } + #endif + +@@ -99,7 +105,8 @@ + class_device_create(svgalib_helper_class, \ + MKDEV(SVGALIB_HELPER_MAJOR, _minor), \ + &sh_pci_devs[_minor]->dev->dev, _name); +-#else /* 2.6.15 changed class_device_create */ ++/* 2.6.15 changed class_device_create */ ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) + # define SLH_SYSFS_ADD_CONTROL \ + class_device_create(svgalib_helper_class, NULL, \ + MKDEV(SVGALIB_HELPER_MAJOR, 0), \ +@@ -109,7 +116,30 @@ + class_device_create(svgalib_helper_class, NULL, \ + MKDEV(SVGALIB_HELPER_MAJOR, _minor), \ + &sh_pci_devs[_minor]->dev->dev, _name); +-#endif /* 2.6.15 */ ++/* 2.6.26 changed class_device_create to device_create */ ++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) ++# define SLH_SYSFS_ADD_CONTROL \ ++ device_create(svgalib_helper_class, NULL, \ ++ MKDEV(SVGALIB_HELPER_MAJOR, 0), \ ++ "svga"); ++ ++# define SLH_SYSFS_ADD_DEVICE(_name, _minor) \ ++ device_create(svgalib_helper_class, &sh_pci_devs[_minor]->dev->dev, \ ++ MKDEV(SVGALIB_HELPER_MAJOR, _minor), \ ++ _name); ++/* 2.6.27 changed device_create to device_create_drvdata */ ++#else ++# define SLH_SYSFS_ADD_CONTROL \ ++ device_create_drvdata(svgalib_helper_class, NULL, \ ++ MKDEV(SVGALIB_HELPER_MAJOR, 0), \ ++ "%s%d", "svga", 0); ++ ++# define SLH_SYSFS_ADD_DEVICE(_name, _minor) \ ++ device_create_drvdata(svgalib_helper_class, \ ++ &sh_pci_devs[_minor]->dev->dev, \ ++ MKDEV(SVGALIB_HELPER_MAJOR, _minor), \ ++ "%s%d", _name, _minor); ++#endif + + # define SLH_SYSFS_REMOVE_DEVICE(i) \ + class_destroy(svgalib_helper_class); +@@ -161,3 +191,7 @@ + #ifndef PCI_VENDOR_ID_RENDITION + #define PCI_VENDOR_ID_RENDITION 0x1163 + #endif ++ ++#ifndef IRQF_SHARED ++# define IRQF_SHARED SA_SHIRQ ++#endif +--- svgalib/kernel/svgalib_helper/main.c ++++ svgalib/kernel/svgalib_helper/main.c +@@ -1,5 +1,3 @@ +-#include <linux/config.h> +- + #if defined (CONFIG_MODVERSIONS) && !defined (MODVERSIONS) + # define MODVERSIONS + #endif +@@ -17,15 +15,22 @@ + #include <linux/ioport.h> + #include <linux/interrupt.h> + #include <linux/pci.h> ++#include <linux/version.h> ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) + #include <linux/devfs_fs_kernel.h> ++#endif + #include <linux/mm.h> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) + #include <linux/thread_info.h> ++#endif + #include <linux/smp.h> + #include <linux/smp_lock.h> + + #include <linux/sched.h> + #include <linux/wait.h> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0) + #include <linux/syscalls.h> ++#endif + + #define __KERNEL_SYSCALLS__ + #include <linux/unistd.h> +@@ -50,7 +55,7 @@ + #include "displaystart.h" + + int debug=0; +-static int all_devices=0; ++int all_devices=0; + int num_devices=0; + + static char *sdev_id="svgalib_helper"; +@@ -98,7 +103,11 @@ + static volatile int vsync=0; + static wait_queue_head_t vsync_wait; + +-static irqreturn_t vsync_interrupt(int irq, void *dev_id, struct pt_regs *regs) ++static irqreturn_t vsync_interrupt(int irq, void *dev_id ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) ++, struct pt_regs *regs ++#endif ++) + { + struct sh_pci_device *dev = (struct sh_pci_device *)dev_id; + +@@ -355,7 +364,7 @@ + vsync=1; + i=0; + while(irqs[i]!=-1) +- request_irq(irqs[i++], vsync_interrupt, SA_SHIRQ, "svgalib_helper", sdev_id); ++ request_irq(irqs[i++], vsync_interrupt, IRQF_SHARED, "svgalib_helper", sdev_id); + vga_enable_vsync((void *)sdev_id); + wait_event_interruptible(vsync_wait, !vsync); + i=0; +@@ -443,7 +452,7 @@ + int i=sh_pci_devs[minor]->dev->irq; + sh_pci_devs[minor]->opencount++; + if(sh_pci_devs[minor]->opencount==1 && i!=0 && i!=-1 && i!=255) +- request_irq(i, vsync_interrupt, SA_SHIRQ, "svgalib_helper", sh_pci_devs[minor]); ++ request_irq(i, vsync_interrupt, IRQF_SHARED, "svgalib_helper", sh_pci_devs[minor]); + } + + #ifndef KERNEL_2_6 +@@ -763,10 +772,15 @@ + + } + ++#ifdef KERNEL_2_6 ++module_param(debug, int, 0); ++module_param(all_devices, int, 0); ++#else + MODULE_PARM(debug, "i"); +-MODULE_PARM_DESC(debug, "Debug output level."); +- + MODULE_PARM(all_devices, "i"); ++#endif ++ ++MODULE_PARM_DESC(debug, "Debug output level."); + MODULE_PARM_DESC(all_devices, "Give access to all PCI devices, regardless of class."); + + +--- svgalib/src/lrmi.6.c ++++ svgalib/src/lrmi.6.c +@@ -169,6 +169,13 @@ + } + } + ++#ifndef TF_MASK ++#define TF_MASK X86_EFLAGS_TF ++#define IF_MASK X86_EFLAGS_IF ++#define IOPL_MASK X86_EFLAGS_IOPL ++#define VIF_MASK X86_EFLAGS_VIF ++#define VIP_MASK X86_EFLAGS_VIP ++#endif + + #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) + #define DEFAULT_STACK_SIZE 0x1000 +--- svgalib/src/lrmi.9.c ++++ svgalib/src/lrmi.9.c +@@ -206,6 +206,13 @@ + + + #if defined(__linux__) ++#ifndef TF_MASK ++#define TF_MASK X86_EFLAGS_TF ++#define IF_MASK X86_EFLAGS_IF ++#define IOPL_MASK X86_EFLAGS_IOPL ++#define VIF_MASK X86_EFLAGS_VIF ++#define VIP_MASK X86_EFLAGS_VIP ++#endif + #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) + #elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) + #define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL) +--- svgalib/lrmi-0.6m/lrmi.c ++++ svgalib/lrmi-0.6m/lrmi.c +@@ -170,6 +170,14 @@ + } + + ++#ifndef TF_MASK ++#define TF_MASK X86_EFLAGS_TF ++#define IF_MASK X86_EFLAGS_IF ++#define IOPL_MASK X86_EFLAGS_IOPL ++#define VIF_MASK X86_EFLAGS_VIF ++#define VIP_MASK X86_EFLAGS_VIP ++#endif ++ + #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) + #define DEFAULT_STACK_SIZE 0x1000 + #define RETURN_TO_32_INT 255 +--- svgalib/lrmi-0.9/lrmi.c ++++ svgalib/lrmi-0.9/lrmi.c +@@ -203,6 +203,13 @@ + + + #if defined(__linux__) ++#ifndef TF_MASK ++#define TF_MASK X86_EFLAGS_TF ++#define IF_MASK X86_EFLAGS_IF ++#define IOPL_MASK X86_EFLAGS_IOPL ++#define VIF_MASK X86_EFLAGS_VIF ++#define VIP_MASK X86_EFLAGS_VIP ++#endif + #define DEFAULT_VM86_FLAGS (IF_MASK | IOPL_MASK) + #elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) + #define DEFAULT_VM86_FLAGS (PSL_I | PSL_IOPL) |