diff options
author | Chris White <chriswhite@gentoo.org> | 2004-07-15 08:26:31 +0000 |
---|---|---|
committer | Chris White <chriswhite@gentoo.org> | 2004-07-15 08:26:31 +0000 |
commit | 91c31028e94e842c3eea37251893423b496c1608 (patch) | |
tree | 408d4417c6c6443a1fd341c7504b879f65bec809 | |
parent | fix broken package. (Manifest recommit) (diff) | |
download | gentoo-2-91c31028e94e842c3eea37251893423b496c1608.tar.gz gentoo-2-91c31028e94e842c3eea37251893423b496c1608.tar.bz2 gentoo-2-91c31028e94e842c3eea37251893423b496c1608.zip |
Fixes bug #57138 regarding mga-kernel patch
-rw-r--r-- | media-video/mplayer/ChangeLog | 7 | ||||
-rw-r--r-- | media-video/mplayer/Manifest | 5 | ||||
-rw-r--r-- | media-video/mplayer/files/mplayer-1.0_pre5-mga-kernel-2.6.patch | 527 | ||||
-rw-r--r-- | media-video/mplayer/mplayer-1.0_pre5.ebuild | 5 |
4 files changed, 540 insertions, 4 deletions
diff --git a/media-video/mplayer/ChangeLog b/media-video/mplayer/ChangeLog index 095faddf8539..15eefeff51a9 100644 --- a/media-video/mplayer/ChangeLog +++ b/media-video/mplayer/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for media-video/mplayer # Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/ChangeLog,v 1.155 2004/07/15 02:49:56 chriswhite Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/ChangeLog,v 1.156 2004/07/15 08:26:31 chriswhite Exp $ + + 15 Jul 2004; Chris White <chriswhite@gentoo.org> + +files/mplayer-1.0_pre5-mga-kernel-2.6.patch, mplayer-1.0_pre5.ebuild: + Re-added the mga_vid.c patch to pre5. Thanks to Norman Yarvin for the heads + up. This fixes Bug #57138 15 Jul 2004; Chris White <chriswhite@gentoo.org> mplayer-1.0_pre5.ebuild: Yay, more fun, they replaced the test ebuild which needed the noenca patch diff --git a/media-video/mplayer/Manifest b/media-video/mplayer/Manifest index 03fea40c6617..5ae9babb833c 100644 --- a/media-video/mplayer/Manifest +++ b/media-video/mplayer/Manifest @@ -1,4 +1,4 @@ -MD5 4c5b84cf5a12c0f6d2590bc4b0b8092e ChangeLog 27608 +MD5 13c4ad613d6eb6f0594d655d4ff5287a ChangeLog 27839 MD5 9ef4af14dad87b03fde8e43f19e08d26 metadata.xml 225 MD5 b813a65769af5d2a2ca1ceba1347974d mplayer-0.92-r1.ebuild 11511 MD5 7eeb1235c1263ecb110925e53de1eb06 mplayer-1.0_pre2-r1.ebuild 11375 @@ -10,7 +10,7 @@ MD5 fbdd96b2a3f0f78bdc8cbded3bb3927b mplayer-1.0_pre4-r2.ebuild 11948 MD5 6b9e16c4f08ac48748812909ed431f31 mplayer-1.0_pre4-r3.ebuild 13034 MD5 d13f33f9022f7abccfe9b14f96531057 mplayer-1.0_pre4-r4.ebuild 13157 MD5 071a354aa3c0e9290b6dcfc8c3621d87 mplayer-1.0_pre4.ebuild 11319 -MD5 4b368f289bc2b0e0605d6d10442a57f4 mplayer-1.0_pre5.ebuild 13070 +MD5 29bd8e4eb172c1da07ef1e1d3defbb89 mplayer-1.0_pre5.ebuild 13157 MD5 6c2dab3392aab51766253b416ad2a10c files/default-skin.diff 396 MD5 deb1dbbf5879ed31e1b83fb7def5b600 files/digest-mplayer-0.92-r1 355 MD5 b0205104d1242fcccdb5dfd2188f5ab2 files/digest-mplayer-1.0_pre2-r1 358 @@ -43,3 +43,4 @@ MD5 fef9f0571da54ae3df2e804100bd2632 files/vuln01-fix.diff 1231 MD5 34f948b8f242a2aadb53a1e2b00e3155 files/vuln02-fix.diff 467 MD5 3aabe241ce3c7d60ea6f607cb7ab033a files/digest-mplayer-1.0_pre5 358 MD5 d7d214ab46189ad1138a0a37eaa859d4 files/noenca.patch 289 +MD5 5cc95d6b380dc27e5ceae0f53ab88f99 files/mplayer-1.0_pre5-mga-kernel-2.6.patch 15043 diff --git a/media-video/mplayer/files/mplayer-1.0_pre5-mga-kernel-2.6.patch b/media-video/mplayer/files/mplayer-1.0_pre5-mga-kernel-2.6.patch new file mode 100644 index 000000000000..df9135bf93e3 --- /dev/null +++ b/media-video/mplayer/files/mplayer-1.0_pre5-mga-kernel-2.6.patch @@ -0,0 +1,527 @@ +--- drivers/mga_vid.c 2003-10-04 19:28:54.000000000 +0200 ++++ drivers/mga_vid.c.new 2004-05-11 15:38:17.377090978 +0200 +@@ -1,9 +1,14 @@ ++#define MODULENAME "mga_vid" ++ + //#define CRTC2 + + // YUY2 support (see config.format) added by A'rpi/ESP-team + // double buffering added by A'rpi/ESP-team + // brightness/contrast introduced by eyck + // multiple card support by Attila Kinali <attila@kinali.ch> ++// ported to the 2.6 series kernels by F.O. Tempel ++// thankfully using the ground work done by Ed Sweetman (for the devfs work) ++// and Gergely Nagy for pushing into the right direction with his patch for 2.6.0-test1 + + // Set this value, if autodetection fails! (video ram size in megabytes) + // #define MGA_MEMORY_SIZE 16 +@@ -36,6 +41,12 @@ + #include <linux/config.h> + #include <linux/version.h> + #include <linux/module.h> ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++#include <linux/moduleparam.h> ++#include <linux/kobject.h> ++#include <linux/kobj_map.h> ++#include <linux/cdev.h> ++#endif + #include <linux/types.h> + #include <linux/kernel.h> + #include <linux/sched.h> +@@ -43,6 +54,10 @@ + #include <linux/string.h> + #include <linux/errno.h> + ++#ifdef MGA_ALLOW_IRQ ++#include <asm/mach-default/irq_vectors.h> ++#include <linux/interrupt.h> ++#endif + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,10) + #include <linux/malloc.h> + #else +@@ -117,7 +132,8 @@ + #ifndef min + #define min(x,y) (((x)<(y))?(x):(y)) + #endif +- ++// These functions are provided by the 2.6.0 kernel these days. ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,0) + #include <linux/ctype.h> + +@@ -155,7 +171,7 @@ + return simple_strtoul(cp,endp,base); + } + #endif +- ++#endif // 2.6.0 + + typedef struct bes_registers_s + { +@@ -348,17 +364,30 @@ + #define ICLEAR 0x1e18 + #define STATUS 0x1e14 + +- +-// global devfs handle for /dev/mga_vid ++/* Global handles for cdev and devfs */ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++static struct cdev *mga_vid_cdev; ++static dev_t mga_cdev_handle; ++#ifdef CONFIG_DEVFS_FS ++typedef struct devfs_entry *devfs_handle_t; ++devfs_handle_t dev_handle = NULL; ++#endif ++#else + #ifdef CONFIG_DEVFS_FS +-static devfs_handle_t dev_handle = NULL; ++ devfs_handle_t dev_handle = NULL; ++#endif + #endif + + // card local config + typedef struct mga_card_s { + + // local devfs handle for /dev/mga_vidX ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) + #ifdef CONFIG_DEVFS_FS ++ struct devfs_entry *devfs_handle_t; ++#endif ++#endif ++#if CONFIG_DEVFS_FS + devfs_handle_t dev_handle; + #endif + +@@ -397,6 +426,7 @@ + int next_frame; + } mga_card_t; + ++ + #define MGA_MAX_CARDS 16 + // this is used as init value for the parameter arrays + // it should have exactly MGA_MAX_CARDS elements +@@ -411,11 +441,19 @@ + static int mga_contrast[MGA_MAX_CARDS] = MGA_MAX_CARDS_INIT_ARRAY; + static int mga_top_reserved[MGA_MAX_CARDS] = MGA_MAX_CARDS_INIT_ARRAY; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++module_param(mga_ram_size, int, 0); ++module_param(mga_top_reserved, int, 0); ++module_param(mga_brightness, int, 0); ++module_param(mga_contrast, int, 0); ++module_param(major, int, 0); ++#else + MODULE_PARM(mga_ram_size, "1-" __MODULE_STRING(MGA_MAX_CARDS) "i"); + MODULE_PARM(mga_top_reserved, "1-" __MODULE_STRING(MGA_MAX_CARDS) "i"); + MODULE_PARM(mga_brightness, "1-" __MODULE_STRING(MGA_MAX_CARDS) "i"); + MODULE_PARM(mga_contrast, "1-" __MODULE_STRING(MGA_MAX_CARDS) "i"); + MODULE_PARM(major, "i"); ++#endif + + #ifdef CRTC2 + static void crtc2_frame_sel(mga_card_t * card, int frame) +@@ -642,7 +680,7 @@ + writel( card->regs.besglobctl + ((readl(card->mmio_base + VCOUNT)+2)<<16), + card->mmio_base + BESGLOBCTL); + +-#if 0 ++#ifdef MP_DEBUG + printk(KERN_DEBUG "mga_vid: wrote BES registers\n"); + printk(KERN_DEBUG "mga_vid: BESCTL = 0x%08x\n", + readl(card->mmio_base + BESCTL)); +@@ -651,6 +689,7 @@ + printk(KERN_DEBUG "mga_vid: BESSTATUS= 0x%08x\n", + readl(card->mmio_base + BESSTATUS)); + #endif ++ + #ifdef CRTC2 + // printk("c2ctl:0x%08x c2datactl:0x%08x\n", readl(card->mmio_base + C2CTL), readl(card->mmio_base + C2DATACTL)); + // printk("c2misc:0x%08x\n", readl(card->mmio_base + C2MISC)); +@@ -1100,7 +1139,7 @@ + + #ifdef MGA_ALLOW_IRQ + +-static void enable_irq(mga_card_t * card){ ++static void mga_enable_irq(mga_card_t * card){ + long int cc; + + cc = readl(card->mmio_base + IEN); +@@ -1116,16 +1155,18 @@ + + } + +-static void disable_irq(mga_card_t * card){ ++static void mga_disable_irq(mga_card_t * card){ + + writeb(0x11, card->mmio_base + CRTCX); + writeb(0x20, card->mmio_base + CRTCD); /* clear 0, enable off */ + + } + +-static void mga_handle_irq(int irq, void *dev_id, struct pt_regs *pregs) { ++static int mga_handle_irq(int irq, void *dev_id, struct pt_regs *pregs) { + // static int frame=0; +-// static int counter=0; ++#ifdef MP_DEBUG ++ static int counter=0; ++#endif + long int cc; + mga_card_t * card = dev_id; + +@@ -1136,7 +1177,7 @@ + // check whether the interrupt is really for us (irq sharing) + if ( irq != -1 ) { + cc = readl(card->mmio_base + STATUS); +- if ( ! (cc & 0x10) ) return; /* vsyncpen */ ++ if ( ! (cc & 0x10) ) return 0; /* vsyncpen */ + // debug_irqcnt++; + } + +@@ -1152,15 +1193,15 @@ + // i han echt kei ahnig was das obe heisse söll + crtc2_frame_sel(card->next_frame); + #endif +- +-#if 0 ++ ++#ifdef MP_DEBUG + ++counter; + if(!(counter&63)){ + printk("mga irq counter = %d\n",counter); + } + #endif + +-// } else { ++ // } else { + // debug_irqignore = 1; + // } + +@@ -1173,7 +1214,7 @@ + // writel( card->regs.besglobctl, card->mmio_base + BESGLOBCTL); + + +- return; ++ return 0; + + } + +@@ -1257,7 +1298,7 @@ + mga_vid_write_regs(card, 0); + } + #ifdef MGA_ALLOW_IRQ +- if ( card->irq != -1 ) enable_irq(card); ++ if ( card->irq != -1 ) mga_enable_irq(card); + #endif + card->next_frame=0; + break; +@@ -1268,7 +1309,7 @@ + #endif + card->vid_src_ready = 0; + #ifdef MGA_ALLOW_IRQ +- if ( card->irq != -1 ) disable_irq(card); ++ if (card->irq != -1 ) mga_disable_irq(card); + #endif + card->regs.besctl &= ~1; + card->regs.besglobctl &= ~(1<<6); // UYVY format selected +@@ -1317,6 +1358,11 @@ + static void cards_init(mga_card_t * card, struct pci_dev * dev, int card_number, int is_g400); + + // returns the number of found cards ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++#define PCI_DEV_NAME(d) (d)->name ++#else ++#define PCI_DEV_NAME(d) pci_name((d)) ++#endif + static int mga_vid_find_card(void) + { + struct pci_dev *dev = NULL; +@@ -1347,27 +1393,27 @@ + switch(dev->device) { + case PCI_DEVICE_ID_MATROX_G550: + mga_dev_name = "MGA G550"; +- printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); ++ printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, PCI_DEV_NAME(dev)); + cards_init(card, dev, mga_cards_num - 1, 1); + break; + case PCI_DEVICE_ID_MATROX_G400: + mga_dev_name = "MGA G400/G450"; +- printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); ++ printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, PCI_DEV_NAME(dev)); + cards_init(card, dev, mga_cards_num - 1, 1); + break; + case PCI_DEVICE_ID_MATROX_G200_AGP: + mga_dev_name = "MGA G200 AGP"; +- printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); ++ printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, PCI_DEV_NAME(dev)); + cards_init(card, dev, mga_cards_num - 1, 0); + break; + case PCI_DEVICE_ID_MATROX_G200_PCI: + mga_dev_name = "MGA G200"; +- printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, dev->name); ++ printk(KERN_INFO "mga_vid: Found %s at %s [%s]\n", mga_dev_name, dev->slot_name, PCI_DEV_NAME(dev)); + cards_init(card, dev, mga_cards_num - 1, 0); + break; + default: + mga_cards_num--; +- printk(KERN_INFO "mga_vid: ignoring matrox device (%d) at %s [%s]\n", dev->device, dev->slot_name, dev->name); ++ printk(KERN_INFO "mga_vid: ignoring matrox device (%d) at %s [%s]\n", dev->device, dev->slot_name, PCI_DEV_NAME(dev)); + break; + } + } +@@ -1473,7 +1519,7 @@ + return(-EAGAIN); + } + +- return(0); ++ return 0; + } + + static int mga_vid_release(struct inode *inode, struct file *file) +@@ -1493,8 +1539,9 @@ + // card->config.colkey_on=0; //!!! + mga_vid_write_regs(card, 1); + card->vid_in_use = 0; +- ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + MOD_DEC_USE_COUNT; ++#endif + return 0; + } + +@@ -1508,7 +1555,11 @@ + mga_card_t * card; + + #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,2) ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++ int minor = iminor(inode); ++#else + int minor = MINOR(inode->i_rdev.value); ++#endif + #else + int minor = MINOR(inode->i_rdev); + #endif +@@ -1539,8 +1590,10 @@ + return(-EBUSY); + + card->vid_in_use = 1; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + MOD_INC_USE_COUNT; +- return(0); ++#endif ++ return 0; + } + + #if LINUX_VERSION_CODE >= 0x020400 +@@ -1573,10 +1626,6 @@ + static void cards_init(mga_card_t * card, struct pci_dev * dev, int card_number, int is_g400) + { + unsigned int card_option; +-// temp buffer for device filename creation used only by devfs +-#ifdef CONFIG_DEVFS_FS +- char buffer[16]; +-#endif + + memset(card,0,sizeof(mga_card_t)); + card->irq = -1; +@@ -1647,10 +1696,11 @@ + // case 0x13: card->ram_size = 8; break; + default: card->ram_size = 8; + } +- } ++} ++ + #if 0 + // printk("List resources -----------\n"); +- for(temp=0;temp<DEVICE_COUNT_RESOURCE;temp++){ ++ for(int temp=0;temp<DEVICE_COUNT_RESOURCE;temp++){ + struct resource *res=&dev->resource[temp]; + if(res->flags){ + int size=(1+res->end-res->start)>>20; +@@ -1665,7 +1715,6 @@ + #endif + } + +- + #ifdef MGA_ALLOW_IRQ + if ( card->irq != -1 ) { + int tmp = request_irq(card->irq, mga_handle_irq, SA_INTERRUPT | SA_SHIRQ, "Syncfb Time Base", card); +@@ -1683,16 +1732,15 @@ + printk(KERN_INFO "syncfb (mga): IRQ disabled in mga_vid.c\n"); + card->irq=-1; + #endif +- +- // register devfs, let the kernel give us major and minor numbers +-#ifdef CONFIG_DEVFS_FS +- snprintf(buffer, 16, "mga_vid%d", card_number); ++// register devfs, let the kernel give us major and minor numbers ++#if CONFIG_DEVFS_FS && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++ char buffer[16]; ++ snprintf(buffer, 16, "%s%d", MODULENAME, card_number); + card->dev_handle = devfs_register(NULL, buffer, DEVFS_FL_AUTO_DEVNUM, + 0, 0, + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IFCHR, + &mga_vid_fops, card); + #endif +- + } + + /* +@@ -1701,71 +1749,101 @@ + + static int mga_vid_initialize(void) + { +- int i; +- +-// printk(KERN_INFO "Matrox MGA G200/G400 YUV Video interface v0.01 (c) Aaron Holtzman \n"); ++ int i; + printk(KERN_INFO "Matrox MGA G200/G400/G450/G550 YUV Video interface v2.01 (c) Aaron Holtzman & A'rpi\n"); +- +- for(i = 0; i < MGA_MAX_CARDS; i++) ++ ++ if(mga_vid_find_card()) + { +- if (mga_ram_size[i]) { +- if (mga_ram_size[i]<4 || mga_ram_size[i]>64) { +- printk(KERN_ERR "mga_vid: invalid RAMSIZE: %d MB\n", mga_ram_size[i]); +- return -EINVAL; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++ if(register_chrdev(major, MODULENAME, &mga_vid_fops)) ++ { ++ printk(KERN_ERR "mga_vid: unable to get major: %d\n", major); ++ return -EIO; ++ } ++ /* Have the kernel generate a major device number */ ++ //if(!alloc_chrdev_region(&mga_cdev_handle, 0, mga_cards_num, "mga_vid")) ++ // major = MAJOR(mga_cdev_handle); ++ printk(KERN_INFO "mga_vid: using major: %d\n", major); ++ /* Allocate a cdev for this character device, and fill in some parameters it needs */ ++ mga_vid_cdev = cdev_alloc(); ++ mga_vid_cdev->owner = THIS_MODULE; ++ strcpy(mga_vid_cdev->kobj.name, MODULENAME); ++ mga_vid_cdev->ops = &mga_vid_fops; ++ /* Add this character device to the system */ ++ cdev_add(mga_vid_cdev, mga_cdev_handle, mga_cards_num); ++#endif ++ for(i = 0; i < mga_cards_num; i++) ++ { ++#if CONFIG_DEVFS_FS && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++ /* Create the device, and register a symlink for the first card found. ++ * Lets not break default behaviour, eh? */ ++ devfs_mk_cdev(MKDEV(major,i), S_IFCHR | S_IRUSR | S_IRGRP | S_IWUSR, "video/mga_vid%d", i); ++ if( i == 0 ) { ++ devfs_mk_symlink(MODULENAME,"video/mga_vid0"); ++ } ++#endif ++ if (mga_ram_size[i]) { ++ if (mga_ram_size[i]<4 || mga_ram_size[i]>64) { ++ printk(KERN_ERR "mga_vid: invalid RAMSIZE: %d MB\n", mga_ram_size[i]); ++ return -EINVAL; ++ } + } + } +- } + +- if(register_chrdev(major, "mga_vid", &mga_vid_fops)) +- { +- printk(KERN_ERR "mga_vid: unable to get major: %d\n", major); +- return -EIO; ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ++ if(register_chrdev(major, MODULENAME, &mga_vid_fops)) ++ { ++ printk(KERN_ERR "mga_vid: unable to get major: %d\n", major); ++ return -EIO; ++ } ++#endif ++ return 0; + } +- +- if (!mga_vid_find_card()) ++ else + { +- printk(KERN_ERR "mga_vid: no supported devices found\n"); +- unregister_chrdev(major, "mga_vid"); +- return -EINVAL; ++ return -EFAULT; + } +-#ifdef CONFIG_DEVFS_FS +- else { +- // we assume that this always succeedes +- dev_handle = devfs_register(NULL, "mga_vid", DEVFS_FL_AUTO_DEVNUM, +- 0,0, +- S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IFCHR, +- &mga_vid_fops, mga_cards[0]); +- } +-#endif +- +- return(0); + } + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++module_init(mga_vid_initialize); ++#else + int init_module(void) + { + return mga_vid_initialize(); + } ++#endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++static void mga_cleanup_module(void) ++#else + void cleanup_module(void) ++#endif + { + int i; + mga_card_t * card; + ++ printk(KERN_INFO "mga_vid: Cleaning up module\n"); + for (i = 0; i < MGA_MAX_CARDS; i++) + { + card = mga_cards[i]; + if(card) + { + #ifdef MGA_ALLOW_IRQ +- if (card->irq != -1) +- free_irq(card->irq, &(card->irq)); ++ if ( card->irq != -1) ++// free_irq(card->irq, &(card->irq)); ++ free_irq(card->irq, card); + #endif + + if(card->mmio_base) + iounmap(card->mmio_base); + if(card->param_buff) + kfree(card->param_buff); +-#ifdef CONFIG_DEVFS_FS ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++#ifdef CONFIG_DEVFS_FS ++ devfs_remove("video/%s%d",MODULENAME, i); ++#endif ++#else + if(card->dev_handle) devfs_unregister(card->dev_handle); + #endif + +@@ -1775,9 +1853,20 @@ + } + + //FIXME turn off BES +- printk(KERN_INFO "mga_vid: Cleaning up module\n"); ++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) + #ifdef CONFIG_DEVFS_FS +- if(dev_handle) devfs_unregister(dev_handle); ++ devfs_unregister(dev_handle); ++#endif ++ unregister_chrdev(major, MODULENAME); ++#else ++#ifdef CONFIG_DEVFS_FS ++ devfs_remove(MODULENAME); ++#endif ++ cdev_del(mga_vid_cdev); ++ unregister_chrdev_region(mga_cdev_handle, mga_cards_num); + #endif +- unregister_chrdev(major, "mga_vid"); + } ++ ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ++module_exit(mga_cleanup_module); ++#endif diff --git a/media-video/mplayer/mplayer-1.0_pre5.ebuild b/media-video/mplayer/mplayer-1.0_pre5.ebuild index 0efd2f59900f..c1a3165b2b27 100644 --- a/media-video/mplayer/mplayer-1.0_pre5.ebuild +++ b/media-video/mplayer/mplayer-1.0_pre5.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/mplayer-1.0_pre5.ebuild,v 1.3 2004/07/15 02:49:56 chriswhite Exp $ +# $Header: /var/cvsroot/gentoo-x86/media-video/mplayer/mplayer-1.0_pre5.ebuild,v 1.4 2004/07/15 08:26:31 chriswhite Exp $ inherit eutils flag-o-matic kmod @@ -118,6 +118,9 @@ src_unpack() { if use matrox; then get_kernel_info + # fixes Bug #57138 with mga patching + epatch ${FILESDIR}/${P}-mga-kernel-2.6.patch + sed -i -e "s/KERNEL_VERSION_HERE/${KV_VERSION_FULL}/" drivers/Makefile \ || die "sed failed on kernel version substitution" |