Skip to content

Commit

Permalink
imxmmc: fix platform resources
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Paulius Zaleckas authored and Pierre Ossman committed Jul 26, 2008
1 parent 322069c commit 5fc63df
Showing 1 changed file with 6 additions and 27 deletions.
33 changes: 6 additions & 27 deletions drivers/mmc/host/imxmmc.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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);
}
Expand Down

0 comments on commit 5fc63df

Please sign in to comment.