diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/char/hw_random/omap-rng.c | 33 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-omap.c | 12 | ||||
-rw-r--r-- | drivers/mmc/host/omap.c | 7 | ||||
-rw-r--r-- | drivers/spi/omap2_mcspi.c | 12 | ||||
-rw-r--r-- | drivers/spi/omap_uwire.c | 23 | ||||
-rw-r--r-- | drivers/usb/host/ohci-omap.c | 14 | ||||
-rw-r--r-- | drivers/video/omap/dispc.c | 15 | ||||
-rw-r--r-- | drivers/video/omap/rfbi.c | 9 | ||||
-rw-r--r-- | drivers/video/omap/sossi.c | 8 |
9 files changed, 107 insertions, 26 deletions
diff --git a/drivers/char/hw_random/omap-rng.c b/drivers/char/hw_random/omap-rng.c index 51738bdd834e..d4e7dca06e4f 100644 --- a/drivers/char/hw_random/omap-rng.c +++ b/drivers/char/hw_random/omap-rng.c | |||
@@ -118,18 +118,21 @@ static int __init omap_rng_probe(struct platform_device *pdev) | |||
118 | 118 | ||
119 | mem = request_mem_region(res->start, res->end - res->start + 1, | 119 | mem = request_mem_region(res->start, res->end - res->start + 1, |
120 | pdev->name); | 120 | pdev->name); |
121 | if (mem == NULL) | 121 | if (mem == NULL) { |
122 | return -EBUSY; | 122 | ret = -EBUSY; |
123 | goto err_region; | ||
124 | } | ||
123 | 125 | ||
124 | dev_set_drvdata(&pdev->dev, mem); | 126 | dev_set_drvdata(&pdev->dev, mem); |
125 | rng_base = (u32 __force __iomem *)io_p2v(res->start); | 127 | rng_base = ioremap(res->start, res->end - res->start + 1); |
128 | if (!rng_base) { | ||
129 | ret = -ENOMEM; | ||
130 | goto err_ioremap; | ||
131 | } | ||
126 | 132 | ||
127 | ret = hwrng_register(&omap_rng_ops); | 133 | ret = hwrng_register(&omap_rng_ops); |
128 | if (ret) { | 134 | if (ret) |
129 | release_resource(mem); | 135 | goto err_register; |
130 | rng_base = NULL; | ||
131 | return ret; | ||
132 | } | ||
133 | 136 | ||
134 | dev_info(&pdev->dev, "OMAP Random Number Generator ver. %02x\n", | 137 | dev_info(&pdev->dev, "OMAP Random Number Generator ver. %02x\n", |
135 | omap_rng_read_reg(RNG_REV_REG)); | 138 | omap_rng_read_reg(RNG_REV_REG)); |
@@ -138,6 +141,18 @@ static int __init omap_rng_probe(struct platform_device *pdev) | |||
138 | rng_dev = pdev; | 141 | rng_dev = pdev; |
139 | 142 | ||
140 | return 0; | 143 | return 0; |
144 | |||
145 | err_register: | ||
146 | iounmap(rng_base); | ||
147 | rng_base = NULL; | ||
148 | err_ioremap: | ||
149 | release_resource(mem); | ||
150 | err_region: | ||
151 | if (cpu_is_omap24xx()) { | ||
152 | clk_disable(rng_ick); | ||
153 | clk_put(rng_ick); | ||
154 | } | ||
155 | return ret; | ||
141 | } | 156 | } |
142 | 157 | ||
143 | static int __exit omap_rng_remove(struct platform_device *pdev) | 158 | static int __exit omap_rng_remove(struct platform_device *pdev) |
@@ -148,6 +163,8 @@ static int __exit omap_rng_remove(struct platform_device *pdev) | |||
148 | 163 | ||
149 | omap_rng_write_reg(RNG_MASK_REG, 0x0); | 164 | omap_rng_write_reg(RNG_MASK_REG, 0x0); |
150 | 165 | ||
166 | iounmap(rng_base); | ||
167 | |||
151 | if (cpu_is_omap24xx()) { | 168 | if (cpu_is_omap24xx()) { |
152 | clk_disable(rng_ick); | 169 | clk_disable(rng_ick); |
153 | clk_put(rng_ick); | 170 | clk_put(rng_ick); |
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index e7eb7bf9ddec..608038d64f81 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c | |||
@@ -589,11 +589,16 @@ omap_i2c_probe(struct platform_device *pdev) | |||
589 | 589 | ||
590 | dev->dev = &pdev->dev; | 590 | dev->dev = &pdev->dev; |
591 | dev->irq = irq->start; | 591 | dev->irq = irq->start; |
592 | dev->base = (void __iomem *) IO_ADDRESS(mem->start); | 592 | dev->base = ioremap(mem->start, mem->end - mem->start + 1); |
593 | if (!dev->base) { | ||
594 | r = -ENOMEM; | ||
595 | goto err_free_mem; | ||
596 | } | ||
597 | |||
593 | platform_set_drvdata(pdev, dev); | 598 | platform_set_drvdata(pdev, dev); |
594 | 599 | ||
595 | if ((r = omap_i2c_get_clocks(dev)) != 0) | 600 | if ((r = omap_i2c_get_clocks(dev)) != 0) |
596 | goto err_free_mem; | 601 | goto err_iounmap; |
597 | 602 | ||
598 | omap_i2c_unidle(dev); | 603 | omap_i2c_unidle(dev); |
599 | 604 | ||
@@ -640,6 +645,8 @@ err_unuse_clocks: | |||
640 | omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0); | 645 | omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0); |
641 | omap_i2c_idle(dev); | 646 | omap_i2c_idle(dev); |
642 | omap_i2c_put_clocks(dev); | 647 | omap_i2c_put_clocks(dev); |
648 | err_iounmap: | ||
649 | iounmap(dev->base); | ||
643 | err_free_mem: | 650 | err_free_mem: |
644 | platform_set_drvdata(pdev, NULL); | 651 | platform_set_drvdata(pdev, NULL); |
645 | kfree(dev); | 652 | kfree(dev); |
@@ -661,6 +668,7 @@ omap_i2c_remove(struct platform_device *pdev) | |||
661 | i2c_del_adapter(&dev->adapter); | 668 | i2c_del_adapter(&dev->adapter); |
662 | omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0); | 669 | omap_i2c_write_reg(dev, OMAP_I2C_CON_REG, 0); |
663 | omap_i2c_put_clocks(dev); | 670 | omap_i2c_put_clocks(dev); |
671 | iounmap(dev->base); | ||
664 | kfree(dev); | 672 | kfree(dev); |
665 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 673 | mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
666 | release_mem_region(mem->start, (mem->end - mem->start) + 1); | 674 | release_mem_region(mem->start, (mem->end - mem->start) + 1); |
diff --git a/drivers/mmc/host/omap.c b/drivers/mmc/host/omap.c index c16028872bbb..1e50bf56c2ce 100644 --- a/drivers/mmc/host/omap.c +++ b/drivers/mmc/host/omap.c | |||
@@ -1455,7 +1455,9 @@ static int __init mmc_omap_probe(struct platform_device *pdev) | |||
1455 | 1455 | ||
1456 | host->irq = irq; | 1456 | host->irq = irq; |
1457 | host->phys_base = host->mem_res->start; | 1457 | host->phys_base = host->mem_res->start; |
1458 | host->virt_base = (void __iomem *) IO_ADDRESS(host->phys_base); | 1458 | host->virt_base = ioremap(res->start, res->end - res->start + 1); |
1459 | if (!host->virt_base) | ||
1460 | goto err_ioremap; | ||
1459 | 1461 | ||
1460 | if (cpu_is_omap24xx()) { | 1462 | if (cpu_is_omap24xx()) { |
1461 | host->iclk = clk_get(&pdev->dev, "mmc_ick"); | 1463 | host->iclk = clk_get(&pdev->dev, "mmc_ick"); |
@@ -1510,6 +1512,8 @@ err_free_iclk: | |||
1510 | clk_put(host->iclk); | 1512 | clk_put(host->iclk); |
1511 | } | 1513 | } |
1512 | err_free_mmc_host: | 1514 | err_free_mmc_host: |
1515 | iounmap(host->virt_base); | ||
1516 | err_ioremap: | ||
1513 | kfree(host); | 1517 | kfree(host); |
1514 | err_free_mem_region: | 1518 | err_free_mem_region: |
1515 | release_mem_region(res->start, res->end - res->start + 1); | 1519 | release_mem_region(res->start, res->end - res->start + 1); |
@@ -1536,6 +1540,7 @@ static int mmc_omap_remove(struct platform_device *pdev) | |||
1536 | if (host->fclk && !IS_ERR(host->fclk)) | 1540 | if (host->fclk && !IS_ERR(host->fclk)) |
1537 | clk_put(host->fclk); | 1541 | clk_put(host->fclk); |
1538 | 1542 | ||
1543 | iounmap(host->virt_base); | ||
1539 | release_mem_region(pdev->resource[0].start, | 1544 | release_mem_region(pdev->resource[0].start, |
1540 | pdev->resource[0].end - pdev->resource[0].start + 1); | 1545 | pdev->resource[0].end - pdev->resource[0].start + 1); |
1541 | 1546 | ||
diff --git a/drivers/spi/omap2_mcspi.c b/drivers/spi/omap2_mcspi.c index 576ae29c39d8..454a2712e629 100644 --- a/drivers/spi/omap2_mcspi.c +++ b/drivers/spi/omap2_mcspi.c | |||
@@ -1009,7 +1009,12 @@ static int __init omap2_mcspi_probe(struct platform_device *pdev) | |||
1009 | } | 1009 | } |
1010 | 1010 | ||
1011 | mcspi->phys = r->start; | 1011 | mcspi->phys = r->start; |
1012 | mcspi->base = (void __iomem *) io_p2v(r->start); | 1012 | mcspi->base = ioremap(r->start, r->end - r->start + 1); |
1013 | if (!mcspi->base) { | ||
1014 | dev_dbg(&pdev->dev, "can't ioremap MCSPI\n"); | ||
1015 | status = -ENOMEM; | ||
1016 | goto err1aa; | ||
1017 | } | ||
1013 | 1018 | ||
1014 | INIT_WORK(&mcspi->work, omap2_mcspi_work); | 1019 | INIT_WORK(&mcspi->work, omap2_mcspi_work); |
1015 | 1020 | ||
@@ -1059,6 +1064,8 @@ err3: | |||
1059 | err2: | 1064 | err2: |
1060 | clk_put(mcspi->ick); | 1065 | clk_put(mcspi->ick); |
1061 | err1a: | 1066 | err1a: |
1067 | iounmap(mcspi->base); | ||
1068 | err1aa: | ||
1062 | release_mem_region(r->start, (r->end - r->start) + 1); | 1069 | release_mem_region(r->start, (r->end - r->start) + 1); |
1063 | err1: | 1070 | err1: |
1064 | spi_master_put(master); | 1071 | spi_master_put(master); |
@@ -1071,6 +1078,7 @@ static int __exit omap2_mcspi_remove(struct platform_device *pdev) | |||
1071 | struct omap2_mcspi *mcspi; | 1078 | struct omap2_mcspi *mcspi; |
1072 | struct omap2_mcspi_dma *dma_channels; | 1079 | struct omap2_mcspi_dma *dma_channels; |
1073 | struct resource *r; | 1080 | struct resource *r; |
1081 | void __iomem *base; | ||
1074 | 1082 | ||
1075 | master = dev_get_drvdata(&pdev->dev); | 1083 | master = dev_get_drvdata(&pdev->dev); |
1076 | mcspi = spi_master_get_devdata(master); | 1084 | mcspi = spi_master_get_devdata(master); |
@@ -1082,7 +1090,9 @@ static int __exit omap2_mcspi_remove(struct platform_device *pdev) | |||
1082 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 1090 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
1083 | release_mem_region(r->start, (r->end - r->start) + 1); | 1091 | release_mem_region(r->start, (r->end - r->start) + 1); |
1084 | 1092 | ||
1093 | base = mcspi->base; | ||
1085 | spi_unregister_master(master); | 1094 | spi_unregister_master(master); |
1095 | iounmap(base); | ||
1086 | kfree(dma_channels); | 1096 | kfree(dma_channels); |
1087 | 1097 | ||
1088 | return 0; | 1098 | return 0; |
diff --git a/drivers/spi/omap_uwire.c b/drivers/spi/omap_uwire.c index 5515eb97d7c5..bab6ff061e91 100644 --- a/drivers/spi/omap_uwire.c +++ b/drivers/spi/omap_uwire.c | |||
@@ -59,7 +59,6 @@ | |||
59 | * and irqs should show there too... | 59 | * and irqs should show there too... |
60 | */ | 60 | */ |
61 | #define UWIRE_BASE_PHYS 0xFFFB3000 | 61 | #define UWIRE_BASE_PHYS 0xFFFB3000 |
62 | #define UWIRE_BASE ((void *__iomem)IO_ADDRESS(UWIRE_BASE_PHYS)) | ||
63 | 62 | ||
64 | /* uWire Registers: */ | 63 | /* uWire Registers: */ |
65 | #define UWIRE_IO_SIZE 0x20 | 64 | #define UWIRE_IO_SIZE 0x20 |
@@ -103,16 +102,21 @@ struct uwire_state { | |||
103 | }; | 102 | }; |
104 | 103 | ||
105 | /* REVISIT compile time constant for idx_shift? */ | 104 | /* REVISIT compile time constant for idx_shift? */ |
105 | /* | ||
106 | * Or, put it in a structure which is used throughout the driver; | ||
107 | * that avoids having to issue two loads for each bit of static data. | ||
108 | */ | ||
106 | static unsigned int uwire_idx_shift; | 109 | static unsigned int uwire_idx_shift; |
110 | static void __iomem *uwire_base; | ||
107 | 111 | ||
108 | static inline void uwire_write_reg(int idx, u16 val) | 112 | static inline void uwire_write_reg(int idx, u16 val) |
109 | { | 113 | { |
110 | __raw_writew(val, UWIRE_BASE + (idx << uwire_idx_shift)); | 114 | __raw_writew(val, uwire_base + (idx << uwire_idx_shift)); |
111 | } | 115 | } |
112 | 116 | ||
113 | static inline u16 uwire_read_reg(int idx) | 117 | static inline u16 uwire_read_reg(int idx) |
114 | { | 118 | { |
115 | return __raw_readw(UWIRE_BASE + (idx << uwire_idx_shift)); | 119 | return __raw_readw(uwire_base + (idx << uwire_idx_shift)); |
116 | } | 120 | } |
117 | 121 | ||
118 | static inline void omap_uwire_configure_mode(u8 cs, unsigned long flags) | 122 | static inline void omap_uwire_configure_mode(u8 cs, unsigned long flags) |
@@ -492,6 +496,14 @@ static int __init uwire_probe(struct platform_device *pdev) | |||
492 | return -ENODEV; | 496 | return -ENODEV; |
493 | 497 | ||
494 | uwire = spi_master_get_devdata(master); | 498 | uwire = spi_master_get_devdata(master); |
499 | |||
500 | uwire_base = ioremap(UWIRE_BASE_PHYS, UWIRE_IO_SIZE); | ||
501 | if (!uwire_base) { | ||
502 | dev_dbg(&pdev->dev, "can't ioremap UWIRE\n"); | ||
503 | spi_master_put(master); | ||
504 | return -ENOMEM; | ||
505 | } | ||
506 | |||
495 | dev_set_drvdata(&pdev->dev, uwire); | 507 | dev_set_drvdata(&pdev->dev, uwire); |
496 | 508 | ||
497 | uwire->ck = clk_get(&pdev->dev, "armxor_ck"); | 509 | uwire->ck = clk_get(&pdev->dev, "armxor_ck"); |
@@ -520,8 +532,10 @@ static int __init uwire_probe(struct platform_device *pdev) | |||
520 | uwire->bitbang.txrx_bufs = uwire_txrx; | 532 | uwire->bitbang.txrx_bufs = uwire_txrx; |
521 | 533 | ||
522 | status = spi_bitbang_start(&uwire->bitbang); | 534 | status = spi_bitbang_start(&uwire->bitbang); |
523 | if (status < 0) | 535 | if (status < 0) { |
524 | uwire_off(uwire); | 536 | uwire_off(uwire); |
537 | iounmap(uwire_base); | ||
538 | } | ||
525 | return status; | 539 | return status; |
526 | } | 540 | } |
527 | 541 | ||
@@ -534,6 +548,7 @@ static int __exit uwire_remove(struct platform_device *pdev) | |||
534 | 548 | ||
535 | status = spi_bitbang_stop(&uwire->bitbang); | 549 | status = spi_bitbang_stop(&uwire->bitbang); |
536 | uwire_off(uwire); | 550 | uwire_off(uwire); |
551 | iounmap(uwire_base); | ||
537 | return status; | 552 | return status; |
538 | } | 553 | } |
539 | 554 | ||
diff --git a/drivers/usb/host/ohci-omap.c b/drivers/usb/host/ohci-omap.c index 95b3ec89c126..522185629624 100644 --- a/drivers/usb/host/ohci-omap.c +++ b/drivers/usb/host/ohci-omap.c | |||
@@ -344,7 +344,12 @@ static int usb_hcd_omap_probe (const struct hc_driver *driver, | |||
344 | goto err1; | 344 | goto err1; |
345 | } | 345 | } |
346 | 346 | ||
347 | hcd->regs = (void __iomem *) (int) IO_ADDRESS(hcd->rsrc_start); | 347 | hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len); |
348 | if (!hcd->regs) { | ||
349 | dev_err(&pdev->dev, "can't ioremap OHCI HCD\n"); | ||
350 | retval = -ENOMEM; | ||
351 | goto err2; | ||
352 | } | ||
348 | 353 | ||
349 | ohci = hcd_to_ohci(hcd); | 354 | ohci = hcd_to_ohci(hcd); |
350 | ohci_hcd_init(ohci); | 355 | ohci_hcd_init(ohci); |
@@ -355,11 +360,11 @@ static int usb_hcd_omap_probe (const struct hc_driver *driver, | |||
355 | irq = platform_get_irq(pdev, 0); | 360 | irq = platform_get_irq(pdev, 0); |
356 | if (irq < 0) { | 361 | if (irq < 0) { |
357 | retval = -ENXIO; | 362 | retval = -ENXIO; |
358 | goto err2; | 363 | goto err3; |
359 | } | 364 | } |
360 | retval = usb_add_hcd(hcd, irq, IRQF_DISABLED); | 365 | retval = usb_add_hcd(hcd, irq, IRQF_DISABLED); |
361 | if (retval) | 366 | if (retval) |
362 | goto err2; | 367 | goto err3; |
363 | 368 | ||
364 | host_initialized = 1; | 369 | host_initialized = 1; |
365 | 370 | ||
@@ -367,6 +372,8 @@ static int usb_hcd_omap_probe (const struct hc_driver *driver, | |||
367 | omap_ohci_clock_power(0); | 372 | omap_ohci_clock_power(0); |
368 | 373 | ||
369 | return 0; | 374 | return 0; |
375 | err3: | ||
376 | iounmap(hcd->regs); | ||
370 | err2: | 377 | err2: |
371 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); | 378 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); |
372 | err1: | 379 | err1: |
@@ -401,6 +408,7 @@ usb_hcd_omap_remove (struct usb_hcd *hcd, struct platform_device *pdev) | |||
401 | } | 408 | } |
402 | if (machine_is_omap_osk()) | 409 | if (machine_is_omap_osk()) |
403 | omap_free_gpio(9); | 410 | omap_free_gpio(9); |
411 | iounmap(hcd->regs); | ||
404 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); | 412 | release_mem_region(hcd->rsrc_start, hcd->rsrc_len); |
405 | usb_put_hcd(hcd); | 413 | usb_put_hcd(hcd); |
406 | clk_put(usb_dc_ck); | 414 | clk_put(usb_dc_ck); |
diff --git a/drivers/video/omap/dispc.c b/drivers/video/omap/dispc.c index 6efcf89e7fbe..58f624bd22e9 100644 --- a/drivers/video/omap/dispc.c +++ b/drivers/video/omap/dispc.c | |||
@@ -156,7 +156,7 @@ struct resmap { | |||
156 | }; | 156 | }; |
157 | 157 | ||
158 | static struct { | 158 | static struct { |
159 | u32 base; | 159 | void __iomem *base; |
160 | 160 | ||
161 | struct omapfb_mem_desc mem_desc; | 161 | struct omapfb_mem_desc mem_desc; |
162 | struct resmap *res_map[DISPC_MEMTYPE_NUM]; | 162 | struct resmap *res_map[DISPC_MEMTYPE_NUM]; |
@@ -1349,14 +1349,19 @@ static int omap_dispc_init(struct omapfb_device *fbdev, int ext_mode, | |||
1349 | 1349 | ||
1350 | memset(&dispc, 0, sizeof(dispc)); | 1350 | memset(&dispc, 0, sizeof(dispc)); |
1351 | 1351 | ||
1352 | dispc.base = io_p2v(DISPC_BASE); | 1352 | dispc.base = ioremap(DISPC_BASE, SZ_1K); |
1353 | if (!dispc.base) { | ||
1354 | dev_err(fbdev->dev, "can't ioremap DISPC\n"); | ||
1355 | return -ENOMEM; | ||
1356 | } | ||
1357 | |||
1353 | dispc.fbdev = fbdev; | 1358 | dispc.fbdev = fbdev; |
1354 | dispc.ext_mode = ext_mode; | 1359 | dispc.ext_mode = ext_mode; |
1355 | 1360 | ||
1356 | init_completion(&dispc.frame_done); | 1361 | init_completion(&dispc.frame_done); |
1357 | 1362 | ||
1358 | if ((r = get_dss_clocks()) < 0) | 1363 | if ((r = get_dss_clocks()) < 0) |
1359 | return r; | 1364 | goto fail0; |
1360 | 1365 | ||
1361 | enable_interface_clocks(1); | 1366 | enable_interface_clocks(1); |
1362 | enable_lcd_clocks(1); | 1367 | enable_lcd_clocks(1); |
@@ -1464,7 +1469,8 @@ fail1: | |||
1464 | enable_lcd_clocks(0); | 1469 | enable_lcd_clocks(0); |
1465 | enable_interface_clocks(0); | 1470 | enable_interface_clocks(0); |
1466 | put_dss_clocks(); | 1471 | put_dss_clocks(); |
1467 | 1472 | fail0: | |
1473 | iounmap(dispc.base); | ||
1468 | return r; | 1474 | return r; |
1469 | } | 1475 | } |
1470 | 1476 | ||
@@ -1481,6 +1487,7 @@ static void omap_dispc_cleanup(void) | |||
1481 | free_irq(INT_24XX_DSS_IRQ, dispc.fbdev); | 1487 | free_irq(INT_24XX_DSS_IRQ, dispc.fbdev); |
1482 | enable_interface_clocks(0); | 1488 | enable_interface_clocks(0); |
1483 | put_dss_clocks(); | 1489 | put_dss_clocks(); |
1490 | iounmap(dispc.base); | ||
1484 | } | 1491 | } |
1485 | 1492 | ||
1486 | const struct lcd_ctrl omap2_int_ctrl = { | 1493 | const struct lcd_ctrl omap2_int_ctrl = { |
diff --git a/drivers/video/omap/rfbi.c b/drivers/video/omap/rfbi.c index 4a6f13d3facf..a13c8dcad2a8 100644 --- a/drivers/video/omap/rfbi.c +++ b/drivers/video/omap/rfbi.c | |||
@@ -59,7 +59,7 @@ | |||
59 | #define DISPC_CONTROL 0x0040 | 59 | #define DISPC_CONTROL 0x0040 |
60 | 60 | ||
61 | static struct { | 61 | static struct { |
62 | u32 base; | 62 | void __iomem *base; |
63 | void (*lcdc_callback)(void *data); | 63 | void (*lcdc_callback)(void *data); |
64 | void *lcdc_callback_data; | 64 | void *lcdc_callback_data; |
65 | unsigned long l4_khz; | 65 | unsigned long l4_khz; |
@@ -518,7 +518,11 @@ static int rfbi_init(struct omapfb_device *fbdev) | |||
518 | int r; | 518 | int r; |
519 | 519 | ||
520 | rfbi.fbdev = fbdev; | 520 | rfbi.fbdev = fbdev; |
521 | rfbi.base = io_p2v(RFBI_BASE); | 521 | rfbi.base = ioremap(RFBI_BASE, SZ_1K); |
522 | if (!rfbi.base) { | ||
523 | dev_err(fbdev->dev, "can't ioremap RFBI\n"); | ||
524 | return -ENOMEM; | ||
525 | } | ||
522 | 526 | ||
523 | if ((r = rfbi_get_clocks()) < 0) | 527 | if ((r = rfbi_get_clocks()) < 0) |
524 | return r; | 528 | return r; |
@@ -566,6 +570,7 @@ static void rfbi_cleanup(void) | |||
566 | { | 570 | { |
567 | omap_dispc_free_irq(); | 571 | omap_dispc_free_irq(); |
568 | rfbi_put_clocks(); | 572 | rfbi_put_clocks(); |
573 | iounmap(rfbi.base); | ||
569 | } | 574 | } |
570 | 575 | ||
571 | const struct lcd_ctrl_extif omap2_ext_if = { | 576 | const struct lcd_ctrl_extif omap2_ext_if = { |
diff --git a/drivers/video/omap/sossi.c b/drivers/video/omap/sossi.c index 6359353c2c67..a76946220249 100644 --- a/drivers/video/omap/sossi.c +++ b/drivers/video/omap/sossi.c | |||
@@ -574,7 +574,12 @@ static int sossi_init(struct omapfb_device *fbdev) | |||
574 | struct clk *dpll1out_ck; | 574 | struct clk *dpll1out_ck; |
575 | int r; | 575 | int r; |
576 | 576 | ||
577 | sossi.base = (void __iomem *)IO_ADDRESS(OMAP_SOSSI_BASE); | 577 | sossi.base = ioremap(OMAP_SOSSI_BASE, SZ_1K); |
578 | if (!sossi.base) { | ||
579 | dev_err(fbdev->dev, "can't ioremap SoSSI\n"); | ||
580 | return -ENOMEM; | ||
581 | } | ||
582 | |||
578 | sossi.fbdev = fbdev; | 583 | sossi.fbdev = fbdev; |
579 | spin_lock_init(&sossi.lock); | 584 | spin_lock_init(&sossi.lock); |
580 | 585 | ||
@@ -665,6 +670,7 @@ static void sossi_cleanup(void) | |||
665 | { | 670 | { |
666 | omap_lcdc_free_dma_callback(); | 671 | omap_lcdc_free_dma_callback(); |
667 | clk_put(sossi.fck); | 672 | clk_put(sossi.fck); |
673 | iounmap(sossi.base); | ||
668 | } | 674 | } |
669 | 675 | ||
670 | struct lcd_ctrl_extif omap1_ext_if = { | 676 | struct lcd_ctrl_extif omap1_ext_if = { |