Loading drivers/video/gbefb.c +13 −7 Original line number Original line Diff line number Diff line Loading @@ -1126,7 +1126,7 @@ static int __init gbefb_probe(struct device *dev) gbefb_setup(options); gbefb_setup(options); #endif #endif if (!request_mem_region(GBE_BASE, sizeof(struct sgi_gbe), "GBE")) { if (!request_region(GBE_BASE, sizeof(struct sgi_gbe), "GBE")) { printk(KERN_ERR "gbefb: couldn't reserve mmio region\n"); printk(KERN_ERR "gbefb: couldn't reserve mmio region\n"); ret = -EBUSY; ret = -EBUSY; goto out_release_framebuffer; goto out_release_framebuffer; Loading @@ -1152,12 +1152,24 @@ static int __init gbefb_probe(struct device *dev) if (gbe_mem_phys) { if (gbe_mem_phys) { /* memory was allocated at boot time */ /* memory was allocated at boot time */ gbe_mem = ioremap_nocache(gbe_mem_phys, gbe_mem_size); gbe_mem = ioremap_nocache(gbe_mem_phys, gbe_mem_size); if (!gbe_mem) { printk(KERN_ERR "gbefb: couldn't map framebuffer\n"); ret = -ENOMEM; goto out_tiles_free; } gbe_dma_addr = 0; gbe_dma_addr = 0; } else { } else { /* try to allocate memory with the classical allocator /* try to allocate memory with the classical allocator * this has high chance to fail on low memory machines */ * this has high chance to fail on low memory machines */ gbe_mem = dma_alloc_coherent(NULL, gbe_mem_size, &gbe_dma_addr, gbe_mem = dma_alloc_coherent(NULL, gbe_mem_size, &gbe_dma_addr, GFP_KERNEL); GFP_KERNEL); if (!gbe_mem) { printk(KERN_ERR "gbefb: couldn't allocate framebuffer memory\n"); ret = -ENOMEM; goto out_tiles_free; } gbe_mem_phys = (unsigned long) gbe_dma_addr; gbe_mem_phys = (unsigned long) gbe_dma_addr; } } Loading @@ -1165,12 +1177,6 @@ static int __init gbefb_probe(struct device *dev) mtrr_add(gbe_mem_phys, gbe_mem_size, MTRR_TYPE_WRCOMB, 1); mtrr_add(gbe_mem_phys, gbe_mem_size, MTRR_TYPE_WRCOMB, 1); #endif #endif if (!gbe_mem) { printk(KERN_ERR "gbefb: couldn't map framebuffer\n"); ret = -ENXIO; goto out_tiles_free; } /* map framebuffer memory into tiles table */ /* map framebuffer memory into tiles table */ for (i = 0; i < (gbe_mem_size >> TILE_SHIFT); i++) for (i = 0; i < (gbe_mem_size >> TILE_SHIFT); i++) gbe_tiles.cpu[i] = (gbe_mem_phys >> TILE_SHIFT) + i; gbe_tiles.cpu[i] = (gbe_mem_phys >> TILE_SHIFT) + i; Loading Loading
drivers/video/gbefb.c +13 −7 Original line number Original line Diff line number Diff line Loading @@ -1126,7 +1126,7 @@ static int __init gbefb_probe(struct device *dev) gbefb_setup(options); gbefb_setup(options); #endif #endif if (!request_mem_region(GBE_BASE, sizeof(struct sgi_gbe), "GBE")) { if (!request_region(GBE_BASE, sizeof(struct sgi_gbe), "GBE")) { printk(KERN_ERR "gbefb: couldn't reserve mmio region\n"); printk(KERN_ERR "gbefb: couldn't reserve mmio region\n"); ret = -EBUSY; ret = -EBUSY; goto out_release_framebuffer; goto out_release_framebuffer; Loading @@ -1152,12 +1152,24 @@ static int __init gbefb_probe(struct device *dev) if (gbe_mem_phys) { if (gbe_mem_phys) { /* memory was allocated at boot time */ /* memory was allocated at boot time */ gbe_mem = ioremap_nocache(gbe_mem_phys, gbe_mem_size); gbe_mem = ioremap_nocache(gbe_mem_phys, gbe_mem_size); if (!gbe_mem) { printk(KERN_ERR "gbefb: couldn't map framebuffer\n"); ret = -ENOMEM; goto out_tiles_free; } gbe_dma_addr = 0; gbe_dma_addr = 0; } else { } else { /* try to allocate memory with the classical allocator /* try to allocate memory with the classical allocator * this has high chance to fail on low memory machines */ * this has high chance to fail on low memory machines */ gbe_mem = dma_alloc_coherent(NULL, gbe_mem_size, &gbe_dma_addr, gbe_mem = dma_alloc_coherent(NULL, gbe_mem_size, &gbe_dma_addr, GFP_KERNEL); GFP_KERNEL); if (!gbe_mem) { printk(KERN_ERR "gbefb: couldn't allocate framebuffer memory\n"); ret = -ENOMEM; goto out_tiles_free; } gbe_mem_phys = (unsigned long) gbe_dma_addr; gbe_mem_phys = (unsigned long) gbe_dma_addr; } } Loading @@ -1165,12 +1177,6 @@ static int __init gbefb_probe(struct device *dev) mtrr_add(gbe_mem_phys, gbe_mem_size, MTRR_TYPE_WRCOMB, 1); mtrr_add(gbe_mem_phys, gbe_mem_size, MTRR_TYPE_WRCOMB, 1); #endif #endif if (!gbe_mem) { printk(KERN_ERR "gbefb: couldn't map framebuffer\n"); ret = -ENXIO; goto out_tiles_free; } /* map framebuffer memory into tiles table */ /* map framebuffer memory into tiles table */ for (i = 0; i < (gbe_mem_size >> TILE_SHIFT); i++) for (i = 0; i < (gbe_mem_size >> TILE_SHIFT); i++) gbe_tiles.cpu[i] = (gbe_mem_phys >> TILE_SHIFT) + i; gbe_tiles.cpu[i] = (gbe_mem_phys >> TILE_SHIFT) + i; Loading