imxmmc: fix platform resources
Fixup platform resources handling. Signed-off-by: Paulius Zaleckas <paulius.zaleckas@teltonika.lt> Acked-by: Pavel Pisa <pisa@cmp.felk.cvut.cz> Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
This commit is contained in:
parent
322069c9df
commit
5fc63dfba8
1 changed files with 6 additions and 27 deletions
|
@ -901,26 +901,6 @@ static const struct mmc_host_ops imxmci_ops = {
|
|||
.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)
|
||||
{
|
||||
struct imxmci_host *host = (struct imxmci_host *)data;
|
||||
|
@ -956,13 +936,12 @@ static int imxmci_probe(struct platform_device *pdev)
|
|||
|
||||
printk(KERN_INFO "i.MX mmc driver\n");
|
||||
|
||||
r = platform_device_resource(pdev, IORESOURCE_MEM, 0);
|
||||
irq = platform_device_irq(pdev, 0);
|
||||
if (!r || irq == NO_IRQ)
|
||||
r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
irq = platform_get_irq(pdev, 0);
|
||||
if (!r || irq < 0)
|
||||
return -ENXIO;
|
||||
|
||||
r = request_mem_region(r->start, 0x100, "IMXMCI");
|
||||
if (!r)
|
||||
if (!request_mem_region(r->start, 0x100, pdev->name))
|
||||
return -EBUSY;
|
||||
|
||||
mmc = mmc_alloc_host(sizeof(struct imxmci_host), &pdev->dev);
|
||||
|
@ -1067,7 +1046,7 @@ static int imxmci_probe(struct platform_device *pdev)
|
|||
}
|
||||
if (mmc)
|
||||
mmc_free_host(mmc);
|
||||
release_resource(r);
|
||||
release_mem_region(r->start, 0x100);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -1096,7 +1075,7 @@ static int imxmci_remove(struct platform_device *pdev)
|
|||
clk_disable(host->clk);
|
||||
clk_put(host->clk);
|
||||
|
||||
release_resource(host->res);
|
||||
release_mem_region(host->res->start, 0x100);
|
||||
|
||||
mmc_free_host(mmc);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue