diff options
Diffstat (limited to 'drivers/video/gbefb.c')
-rw-r--r-- | drivers/video/gbefb.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/video/gbefb.c b/drivers/video/gbefb.c index 05e2a8a99d8f..3dad31975db8 100644 --- a/drivers/video/gbefb.c +++ b/drivers/video/gbefb.c | |||
@@ -20,6 +20,7 @@ | |||
20 | #include <linux/kernel.h> | 20 | #include <linux/kernel.h> |
21 | #include <linux/mm.h> | 21 | #include <linux/mm.h> |
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/io.h> | ||
23 | 24 | ||
24 | #ifdef CONFIG_X86 | 25 | #ifdef CONFIG_X86 |
25 | #include <asm/mtrr.h> | 26 | #include <asm/mtrr.h> |
@@ -28,7 +29,6 @@ | |||
28 | #include <asm/addrspace.h> | 29 | #include <asm/addrspace.h> |
29 | #endif | 30 | #endif |
30 | #include <asm/byteorder.h> | 31 | #include <asm/byteorder.h> |
31 | #include <asm/io.h> | ||
32 | #include <asm/tlbflush.h> | 32 | #include <asm/tlbflush.h> |
33 | 33 | ||
34 | #include <video/gbe.h> | 34 | #include <video/gbe.h> |
@@ -1156,7 +1156,8 @@ static int __devinit gbefb_probe(struct platform_device *p_dev) | |||
1156 | goto out_release_framebuffer; | 1156 | goto out_release_framebuffer; |
1157 | } | 1157 | } |
1158 | 1158 | ||
1159 | gbe = (struct sgi_gbe *) ioremap(GBE_BASE, sizeof(struct sgi_gbe)); | 1159 | gbe = (struct sgi_gbe *) devm_ioremap(&p_dev->dev, GBE_BASE, |
1160 | sizeof(struct sgi_gbe)); | ||
1160 | if (!gbe) { | 1161 | if (!gbe) { |
1161 | printk(KERN_ERR "gbefb: couldn't map mmio region\n"); | 1162 | printk(KERN_ERR "gbefb: couldn't map mmio region\n"); |
1162 | ret = -ENXIO; | 1163 | ret = -ENXIO; |
@@ -1170,12 +1171,13 @@ static int __devinit gbefb_probe(struct platform_device *p_dev) | |||
1170 | if (!gbe_tiles.cpu) { | 1171 | if (!gbe_tiles.cpu) { |
1171 | printk(KERN_ERR "gbefb: couldn't allocate tiles table\n"); | 1172 | printk(KERN_ERR "gbefb: couldn't allocate tiles table\n"); |
1172 | ret = -ENOMEM; | 1173 | ret = -ENOMEM; |
1173 | goto out_unmap; | 1174 | goto out_release_mem_region; |
1174 | } | 1175 | } |
1175 | 1176 | ||
1176 | if (gbe_mem_phys) { | 1177 | if (gbe_mem_phys) { |
1177 | /* memory was allocated at boot time */ | 1178 | /* memory was allocated at boot time */ |
1178 | gbe_mem = ioremap_nocache(gbe_mem_phys, gbe_mem_size); | 1179 | gbe_mem = devm_ioremap_nocache(&p_dev->dev, gbe_mem_phys, |
1180 | gbe_mem_size); | ||
1179 | if (!gbe_mem) { | 1181 | if (!gbe_mem) { |
1180 | printk(KERN_ERR "gbefb: couldn't map framebuffer\n"); | 1182 | printk(KERN_ERR "gbefb: couldn't map framebuffer\n"); |
1181 | ret = -ENOMEM; | 1183 | ret = -ENOMEM; |
@@ -1241,13 +1243,9 @@ static int __devinit gbefb_probe(struct platform_device *p_dev) | |||
1241 | out_gbe_unmap: | 1243 | out_gbe_unmap: |
1242 | if (gbe_dma_addr) | 1244 | if (gbe_dma_addr) |
1243 | dma_free_coherent(NULL, gbe_mem_size, gbe_mem, gbe_mem_phys); | 1245 | dma_free_coherent(NULL, gbe_mem_size, gbe_mem, gbe_mem_phys); |
1244 | else | ||
1245 | iounmap(gbe_mem); | ||
1246 | out_tiles_free: | 1246 | out_tiles_free: |
1247 | dma_free_coherent(NULL, GBE_TLB_SIZE * sizeof(uint16_t), | 1247 | dma_free_coherent(NULL, GBE_TLB_SIZE * sizeof(uint16_t), |
1248 | (void *)gbe_tiles.cpu, gbe_tiles.dma); | 1248 | (void *)gbe_tiles.cpu, gbe_tiles.dma); |
1249 | out_unmap: | ||
1250 | iounmap(gbe); | ||
1251 | out_release_mem_region: | 1249 | out_release_mem_region: |
1252 | release_mem_region(GBE_BASE, sizeof(struct sgi_gbe)); | 1250 | release_mem_region(GBE_BASE, sizeof(struct sgi_gbe)); |
1253 | out_release_framebuffer: | 1251 | out_release_framebuffer: |
@@ -1264,12 +1262,9 @@ static int __devexit gbefb_remove(struct platform_device* p_dev) | |||
1264 | gbe_turn_off(); | 1262 | gbe_turn_off(); |
1265 | if (gbe_dma_addr) | 1263 | if (gbe_dma_addr) |
1266 | dma_free_coherent(NULL, gbe_mem_size, gbe_mem, gbe_mem_phys); | 1264 | dma_free_coherent(NULL, gbe_mem_size, gbe_mem, gbe_mem_phys); |
1267 | else | ||
1268 | iounmap(gbe_mem); | ||
1269 | dma_free_coherent(NULL, GBE_TLB_SIZE * sizeof(uint16_t), | 1265 | dma_free_coherent(NULL, GBE_TLB_SIZE * sizeof(uint16_t), |
1270 | (void *)gbe_tiles.cpu, gbe_tiles.dma); | 1266 | (void *)gbe_tiles.cpu, gbe_tiles.dma); |
1271 | release_mem_region(GBE_BASE, sizeof(struct sgi_gbe)); | 1267 | release_mem_region(GBE_BASE, sizeof(struct sgi_gbe)); |
1272 | iounmap(gbe); | ||
1273 | gbefb_remove_sysfs(&p_dev->dev); | 1268 | gbefb_remove_sysfs(&p_dev->dev); |
1274 | framebuffer_release(info); | 1269 | framebuffer_release(info); |
1275 | 1270 | ||