okay I'm happy to apply the i810 portion and will do so soon, someone else want to look after the other pieces or should I do them also?
Dave. On Thu, 14 Aug 2003, Linus Torvalds wrote: > > Ok, > I just did another kernel merge to pick up the i810 compatibility bits, > and decided it is time to try to merge back some of the stuff that has > accumulated in the standard kernel and that makes it more painful than > necessary to examine the diffs for differences. > > This is mostly whitespace changes (some of it new from Dave Jones, some of > it quite old), and some other minor things: moving some counter and lock > initializations slightly earlier to where the data structure they are in > are allocated and initialized, so that interrupts can't even by mistake > see them partially done. > > It also removes the printk() for the AGP version, since that is actually > done by the AGP layer anyway. > > I'd appreciate it if all (or even most) of this could find itself back > into the DRI CVS tree, to make it easier to read the code and merge it > (some of the whitespace fixes are literally broken whitespace in the DRI > tree - comments that end up being in strange columns etc). > > Apart from moving some initializations around and the aforementioned > printk removal, this should not actually affect semantics at all. > > Oh, and the thing will apply with a few offsets, since I edited the patch > to remove stuff that you don't want at this point. My tree doesn't contain > all of the 2.4.x compatibility crud etc. > > You can apply (or not apply) everything independently, so feel free to > cherry-pick the patches. I did edit out anything that looked even remotely > like it could cause discussion (ie this does _not_ contain the > "cpu_relax()" stuff that I have in my tree, for example). > > Thanks, > > Linus > ----- > diff -u --recursive /home/torvalds/dri-kernel/Kconfig ./Kconfig > --- /home/torvalds/dri-kernel/Kconfig 2003-04-22 14:30:23.000000000 -0700 > +++ ./Kconfig 2003-08-14 13:05:45.137737925 -0700 > @@ -24,10 +24,10 @@ > > config DRM_GAMMA > tristate "3dlabs GMX 2000" > - depends on DRM && n > + depends on DRM > help > - This is the old gamma driver, disabled for now unless somebody > - tells me it actually might work. > + This is the old gamma driver, please tell me if it might actually > + work. > > config DRM_R128 > tristate "ATI Rage 128" > @@ -49,7 +49,7 @@ > > config DRM_I810 > tristate "Intel I810" > - depends on DRM && AGP > + depends on DRM && AGP && AGP_INTEL > help > Choose this option if you have an Intel I810 graphics card. If M is > selected, the module will be called i810. AGP support is required > @@ -57,7 +57,7 @@ > > config DRM_I830 > tristate "Intel 830M, 845G, 852GM, 855GM, 865G" > - depends on DRM && AGP > + depends on DRM && AGP && AGP_INTEL > help > Choose this option if you have a system that has Intel 830M, 845G, > 852GM, 855GM or 865G integrated graphics. If M is selected, the > @@ -72,3 +72,12 @@ > Choose this option if you have a Matrox G200, G400 or G450 graphics > card. If M is selected, the module will be called mga. AGP > support is required for this driver to work. > + > +config DRM_SIS > + tristate "SiS video cards" > + depends on DRM && AGP && FB_SIS > + help > + Choose this option if you have a SiS 630 or compatibel video > + chipset. If M is selected the module will be called sis. AGP > + and SiS FB support is required for this driver to work. > + > diff -u --recursive /home/torvalds/dri-kernel/drm_agpsupport.h ./drm_agpsupport.h > --- /home/torvalds/dri-kernel/drm_agpsupport.h 2003-07-25 20:04:22.000000000 > -0700 > +++ ./drm_agpsupport.h 2003-08-14 13:05:45.361704630 -0700 > @@ -106,7 +105,8 @@ > if ( dev->agp->cant_use_aperture ) > return -EINVAL; > #endif > - if ((retcode = drm_agp->acquire())) return retcode; > + if ((retcode = drm_agp->acquire())) > + return retcode; > dev->agp->acquired = 1; > return 0; > } > @@ -147,7 +143,8 @@ > */ > void DRM(agp_do_release)(void) > { > - if (drm_agp->release) drm_agp->release(); > + if (drm_agp->release) > + drm_agp->release(); > } > > /** > @@ -201,7 +198,8 @@ > unsigned long pages; > u32 type; > > - if (!dev->agp || !dev->agp->acquired) return -EINVAL; > + if (!dev->agp || !dev->agp->acquired) > + return -EINVAL; > if (copy_from_user(&request, (drm_agp_buffer_t *)arg, sizeof(request))) > return -EFAULT; > if (!(entry = DRM(alloc)(sizeof(*entry), DRM_MEM_AGPLISTS))) > @@ -227,11 +225,12 @@ > entry->pages = pages; > entry->prev = NULL; > entry->next = dev->agp->memory; > - if (dev->agp->memory) dev->agp->memory->prev = entry; > + if (dev->agp->memory) > + dev->agp->memory->prev = entry; > dev->agp->memory = entry; > > request.handle = entry->handle; > - request.physical = memory->physical; > + request.physical = memory->physical; > > if (copy_to_user((drm_agp_buffer_t *)arg, &request, sizeof(request))) { > dev->agp->memory = entry->next; > @@ -258,7 +257,8 @@ > drm_agp_mem_t *entry; > > for (entry = dev->agp->memory; entry; entry = entry->next) { > - if (entry->handle == handle) return entry; > + if (entry->handle == handle) > + return entry; > } > return NULL; > } > @@ -284,12 +284,14 @@ > drm_agp_mem_t *entry; > int ret; > > - if (!dev->agp || !dev->agp->acquired) return -EINVAL; > + if (!dev->agp || !dev->agp->acquired) > + return -EINVAL; > if (copy_from_user(&request, (drm_agp_binding_t *)arg, sizeof(request))) > return -EFAULT; > if (!(entry = DRM(agp_lookup_entry)(dev, request.handle))) > return -EINVAL; > - if (!entry->bound) return -EINVAL; > + if (!entry->bound) > + return -EINVAL; > ret = DRM(unbind_agp)(entry->memory); > if (ret == 0) > entry->bound = 0; > @@ -325,9 +327,11 @@ > return -EFAULT; > if (!(entry = DRM(agp_lookup_entry)(dev, request.handle))) > return -EINVAL; > - if (entry->bound) return -EINVAL; > + if (entry->bound) > + return -EINVAL; > page = (request.offset + PAGE_SIZE - 1) / PAGE_SIZE; > - if ((retcode = DRM(bind_agp)(entry->memory, page))) return retcode; > + if ((retcode = DRM(bind_agp)(entry->memory, page))) > + return retcode; > entry->bound = dev->agp->base + (page << PAGE_SHIFT); > DRM_DEBUG("base = 0x%lx entry->bound = 0x%lx\n", > dev->agp->base, entry->bound); > @@ -356,16 +360,23 @@ > drm_agp_buffer_t request; > drm_agp_mem_t *entry; > > - if (!dev->agp || !dev->agp->acquired) return -EINVAL; > + if (!dev->agp || !dev->agp->acquired) > + return -EINVAL; > if (copy_from_user(&request, (drm_agp_buffer_t *)arg, sizeof(request))) > return -EFAULT; > if (!(entry = DRM(agp_lookup_entry)(dev, request.handle))) > return -EINVAL; > - if (entry->bound) DRM(unbind_agp)(entry->memory); > + if (entry->bound) > + DRM(unbind_agp)(entry->memory); > + > + if (entry->prev) > + entry->prev->next = entry->next; > + else > + dev->agp->memory = entry->next; > + > + if (entry->next) > + entry->next->prev = entry->prev; > > - if (entry->prev) entry->prev->next = entry->next; > - else dev->agp->memory = entry->next; > - if (entry->next) entry->next->prev = entry->prev; > DRM(free_agp)(entry->memory, entry->pages); > DRM(free)(entry, sizeof(*entry), DRM_MEM_AGPLISTS); > return 0; > @@ -402,12 +413,6 @@ > head->cant_use_aperture = head->agp_info.cant_use_aperture; > head->page_mask = head->agp_info.page_mask; > #endif > - > - DRM_INFO("AGP %d.%d aperture @ 0x%08lx %ZuMB\n", > - head->agp_info.version.major, > - head->agp_info.version.minor, > - head->agp_info.aper_base, > - head->agp_info.aper_size); > } > return head; > } > @@ -426,14 +431,16 @@ > /** Calls drm_agp->allocate_memory() */ > DRM_AGP_MEM *DRM(agp_allocate_memory)(size_t pages, u32 type) > { > - if (!drm_agp->allocate_memory) return NULL; > + if (!drm_agp->allocate_memory) > + return NULL; > return drm_agp->allocate_memory(pages, type); > } > > /** Calls drm_agp->free_memory() */ > int DRM(agp_free_memory)(DRM_AGP_MEM *handle) > { > - if (!handle || !drm_agp->free_memory) return 0; > + if (!handle || !drm_agp->free_memory) > + return 0; > drm_agp->free_memory(handle); > return 1; > } > @@ -441,14 +448,16 @@ > /** Calls drm_agp->bind_memory() */ > int DRM(agp_bind_memory)(DRM_AGP_MEM *handle, off_t start) > { > - if (!handle || !drm_agp->bind_memory) return -EINVAL; > + if (!handle || !drm_agp->bind_memory) > + return -EINVAL; > return drm_agp->bind_memory(handle, start); > } > > /** Calls drm_agp->unbind_memory() */ > int DRM(agp_unbind_memory)(DRM_AGP_MEM *handle) > { > - if (!handle || !drm_agp->unbind_memory) return -EINVAL; > + if (!handle || !drm_agp->unbind_memory) > + return -EINVAL; > return drm_agp->unbind_memory(handle); > } > > diff -u --recursive /home/torvalds/dri-kernel/drm_dma.h ./drm_dma.h > --- /home/torvalds/dri-kernel/drm_dma.h 2003-06-02 11:13:17.000000000 -0700 > +++ ./drm_dma.h 2003-08-14 13:05:45.142737181 -0700 > @@ -239,7 +238,7 @@ > > down( &dev->struct_sem ); > > - /* Driver must have been initialized */ > + /* Driver must have been initialized */ > if ( !dev->dev_private ) { > up( &dev->struct_sem ); > return -EINVAL; > diff -u --recursive /home/torvalds/dri-kernel/drm_drv.h ./drm_drv.h > --- /home/torvalds/dri-kernel/drm_drv.h 2003-08-06 20:04:30.000000000 -0700 > +++ ./drm_drv.h 2003-08-14 13:05:45.142737181 -0700 > @@ -344,7 +344,6 @@ > dev->last_context = 0; > dev->last_switch = 0; > dev->last_checked = 0; > - init_timer( &dev->timer ); > init_waitqueue_head( &dev->context_wait ); > > dev->ctx_start = 0; > @@ -624,6 +623,7 @@ > dev = &(DRM(device)[i]); > memset( (void *)dev, 0, sizeof(*dev) ); > dev->count_lock = SPIN_LOCK_UNLOCKED; > + init_timer( &dev->timer ); > sema_init( &dev->struct_sem, 1 ); > > if ((DRM(minor)[i] = DRM(stub_register)(DRIVER_NAME, &DRM(fops),dev)) > < 0) > diff -u --recursive /home/torvalds/dri-kernel/drm_vm.h ./drm_vm.h > --- /home/torvalds/dri-kernel/drm_vm.h 2003-06-02 11:13:18.000000000 -0700 > +++ ./drm_vm.h 2003-08-14 13:05:45.143737033 -0700 > @@ -510,7 +509,7 @@ > if (map->size != vma->vm_end - vma->vm_start) return -EINVAL; > > if (!capable(CAP_SYS_ADMIN) && (map->flags & _DRM_READ_ONLY)) { > - vma->vm_flags &= (VM_READ | VM_MAYREAD); > + vma->vm_flags &= ~(VM_WRITE | VM_MAYWRITE); > #if defined(__i386__) || defined(__x86_64__) > pgprot_val(vma->vm_page_prot) &= ~_PAGE_RW; > #else > diff -u --recursive /home/torvalds/dri-kernel/i810_dma.c ./i810_dma.c > --- /home/torvalds/dri-kernel/i810_dma.c 2003-08-13 20:04:10.000000000 -0700 > +++ ./i810_dma.c 2003-08-14 13:05:45.146736587 -0700 > @@ -62,7 +55,7 @@ > { > drm_device_dma_t *dma = dev->dma; > drm_i810_private_t *dev_priv = dev->dev_private; > - u32 *temp = (u32 *)dev_priv->hw_status_page; > + u32 *temp = dev_priv->hw_status_page; > int i; > > DRM_DEBUG( "hw_status: Interrupt Status : %x\n", temp[0]); > @@ -465,7 +458,7 @@ > { > > /* Get v1.1 init data */ > - if(copy_from_user(init, (drm_i810_pre12_init_t *)arg, > + if (copy_from_user(init, (drm_i810_pre12_init_t *)arg, > sizeof(drm_i810_pre12_init_t))) { > return -EFAULT; > } > @@ -503,9 +496,8 @@ > int retcode = 0; > > /* Get only the init func */ > - if (copy_from_user(&init, (void *)arg, sizeof(drm_i810_init_func_t))) { > + if (copy_from_user(&init, (void *)arg, sizeof(drm_i810_init_func_t))) > return -EFAULT; > - } > > switch(init.func) { > case I810_INIT_DMA: > @@ -515,30 +507,34 @@ > * It will someday go away. > */ > retcode = i810_dma_init_compat(&init, arg); > - if(retcode) { > + if (retcode) > return retcode; > - } > + > dev_priv = DRM(alloc)(sizeof(drm_i810_private_t), > DRM_MEM_DRIVER); > - if(dev_priv == NULL) return -ENOMEM; > + if (dev_priv == NULL) > + return -ENOMEM; > retcode = i810_dma_initialize(dev, dev_priv, &init); > - break; > + break; > + > default: > case I810_INIT_DMA_1_4: > DRM_INFO("Using v1.4 init.\n"); > - if(copy_from_user(&init, (drm_i810_init_t *)arg, > + if (copy_from_user(&init, (drm_i810_init_t *)arg, > sizeof(drm_i810_init_t))) { > return -EFAULT; > } > dev_priv = DRM(alloc)(sizeof(drm_i810_private_t), > DRM_MEM_DRIVER); > - if(dev_priv == NULL) return -ENOMEM; > + if (dev_priv == NULL) > + return -ENOMEM; > retcode = i810_dma_initialize(dev, dev_priv, &init); > - break; > + break; > + > case I810_CLEANUP_DMA: > DRM_INFO("DMA Cleanup\n"); > retcode = i810_dma_cleanup(dev); > - break; > + break; > } > > return retcode; > @@ -1052,7 +1048,7 @@ > drm_device_t *dev = priv->dev; > drm_device_dma_t *dma = dev->dma; > drm_i810_private_t *dev_priv = (drm_i810_private_t *)dev->dev_private; > - u32 *hw_status = (u32 *)dev_priv->hw_status_page; > + u32 *hw_status = dev_priv->hw_status_page; > drm_i810_sarea_t *sarea_priv = (drm_i810_sarea_t *) > dev_priv->sarea_priv; > drm_i810_vertex_t vertex; > @@ -1133,7 +1129,7 @@ > drm_file_t *priv = filp->private_data; > drm_device_t *dev = priv->dev; > drm_i810_private_t *dev_priv = (drm_i810_private_t *)dev->dev_private; > - u32 *hw_status = (u32 *)dev_priv->hw_status_page; > + u32 *hw_status = dev_priv->hw_status_page; > drm_i810_sarea_t *sarea_priv = (drm_i810_sarea_t *) > dev_priv->sarea_priv; > > @@ -1149,7 +1145,7 @@ > int retcode = 0; > drm_i810_dma_t d; > drm_i810_private_t *dev_priv = (drm_i810_private_t *)dev->dev_private; > - u32 *hw_status = (u32 *)dev_priv->hw_status_page; > + u32 *hw_status = dev_priv->hw_status_page; > drm_i810_sarea_t *sarea_priv = (drm_i810_sarea_t *) > dev_priv->sarea_priv; > > @@ -1261,7 +1257,7 @@ > drm_device_t *dev = priv->dev; > drm_device_dma_t *dma = dev->dma; > drm_i810_private_t *dev_priv = (drm_i810_private_t *)dev->dev_private; > - u32 *hw_status = (u32 *)dev_priv->hw_status_page; > + u32 *hw_status = dev_priv->hw_status_page; > drm_i810_sarea_t *sarea_priv = (drm_i810_sarea_t *) > dev_priv->sarea_priv; > drm_i810_mc_t mc; > diff -u --recursive /home/torvalds/dri-kernel/i830_irq.c ./i830_irq.c > --- /home/torvalds/dri-kernel/i830_irq.c 2003-07-29 20:05:12.000000000 -0700 > +++ ./i830_irq.c 2003-08-14 13:05:45.148736290 -0700 > @@ -186,6 +185,9 @@ > I830_WRITE16( I830REG_HWSTAM, 0xffff ); > I830_WRITE16( I830REG_INT_MASK_R, 0x0 ); > I830_WRITE16( I830REG_INT_ENABLE_R, 0x0 ); > + atomic_set(&dev_priv->irq_received, 0); > + atomic_set(&dev_priv->irq_emitted, 0); > + init_waitqueue_head(&dev_priv->irq_queue); > } > > void DRM(driver_irq_postinstall)( drm_device_t *dev ) { > @@ -193,9 +195,6 @@ > (drm_i830_private_t *)dev->dev_private; > > I830_WRITE16( I830REG_INT_ENABLE_R, 0x2 ); > - atomic_set(&dev_priv->irq_received, 0); > - atomic_set(&dev_priv->irq_emitted, 0); > - init_waitqueue_head(&dev_priv->irq_queue); > } > > void DRM(driver_irq_uninstall)( drm_device_t *dev ) { > > > > ------------------------------------------------------- > This SF.Net email sponsored by: Free pre-built ASP.NET sites including > Data Reports, E-commerce, Portals, and Forums are available now. > Download today and enter to win an XBOX or Visual Studio .NET. > http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 > _______________________________________________ > Dri-devel mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/dri-devel > -- David Airlie, Software Engineer http://www.skynet.ie/~airlied / [EMAIL PROTECTED] pam_smb / Linux DECstation / Linux VAX / ILUG person ------------------------------------------------------- This SF.Net email sponsored by: Free pre-built ASP.NET sites including Data Reports, E-commerce, Portals, and Forums are available now. Download today and enter to win an XBOX or Visual Studio .NET. http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01 _______________________________________________ Dri-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/dri-devel