提交 5fc63dfb 编写于 作者: P Paulius Zaleckas 提交者: Pierre Ossman

imxmmc: fix platform resources

Fixup platform resources handling.
Signed-off-by: NPaulius Zaleckas <paulius.zaleckas@teltonika.lt>
Acked-by: NPavel Pisa <pisa@cmp.felk.cvut.cz>
Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
上级 322069c9
...@@ -901,26 +901,6 @@ static const struct mmc_host_ops imxmci_ops = { ...@@ -901,26 +901,6 @@ static const struct mmc_host_ops imxmci_ops = {
.get_ro = imxmci_get_ro, .get_ro = imxmci_get_ro,
}; };
static struct resource *platform_device_resource(struct platform_device *dev, unsigned int mask, int nr)
{
int i;
for (i = 0; i < dev->num_resources; i++)
if (dev->resource[i].flags == mask && nr-- == 0)
return &dev->resource[i];
return NULL;
}
static int platform_device_irq(struct platform_device *dev, int nr)
{
int i;
for (i = 0; i < dev->num_resources; i++)
if (dev->resource[i].flags == IORESOURCE_IRQ && nr-- == 0)
return dev->resource[i].start;
return NO_IRQ;
}
static void imxmci_check_status(unsigned long data) static void imxmci_check_status(unsigned long data)
{ {
struct imxmci_host *host = (struct imxmci_host *)data; struct imxmci_host *host = (struct imxmci_host *)data;
...@@ -956,13 +936,12 @@ static int imxmci_probe(struct platform_device *pdev) ...@@ -956,13 +936,12 @@ static int imxmci_probe(struct platform_device *pdev)
printk(KERN_INFO "i.MX mmc driver\n"); printk(KERN_INFO "i.MX mmc driver\n");
r = platform_device_resource(pdev, IORESOURCE_MEM, 0); r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
irq = platform_device_irq(pdev, 0); irq = platform_get_irq(pdev, 0);
if (!r || irq == NO_IRQ) if (!r || irq < 0)
return -ENXIO; return -ENXIO;
r = request_mem_region(r->start, 0x100, "IMXMCI"); if (!request_mem_region(r->start, 0x100, pdev->name))
if (!r)
return -EBUSY; return -EBUSY;
mmc = mmc_alloc_host(sizeof(struct imxmci_host), &pdev->dev); mmc = mmc_alloc_host(sizeof(struct imxmci_host), &pdev->dev);
...@@ -1067,7 +1046,7 @@ static int imxmci_probe(struct platform_device *pdev) ...@@ -1067,7 +1046,7 @@ static int imxmci_probe(struct platform_device *pdev)
} }
if (mmc) if (mmc)
mmc_free_host(mmc); mmc_free_host(mmc);
release_resource(r); release_mem_region(r->start, 0x100);
return ret; return ret;
} }
...@@ -1096,7 +1075,7 @@ static int imxmci_remove(struct platform_device *pdev) ...@@ -1096,7 +1075,7 @@ static int imxmci_remove(struct platform_device *pdev)
clk_disable(host->clk); clk_disable(host->clk);
clk_put(host->clk); clk_put(host->clk);
release_resource(host->res); release_mem_region(host->res->start, 0x100);
mmc_free_host(mmc); mmc_free_host(mmc);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册