diff options
| -rw-r--r-- | drivers/mmc/host/imxmmc.c | 33 |
1 files changed, 6 insertions, 27 deletions
diff --git a/drivers/mmc/host/imxmmc.c b/drivers/mmc/host/imxmmc.c index 77493339303b..9cda12fba9aa 100644 --- a/drivers/mmc/host/imxmmc.c +++ b/drivers/mmc/host/imxmmc.c | |||
| @@ -901,26 +901,6 @@ static const struct mmc_host_ops imxmci_ops = { | |||
| 901 | .get_ro = imxmci_get_ro, | 901 | .get_ro = imxmci_get_ro, |
| 902 | }; | 902 | }; |
| 903 | 903 | ||
| 904 | static struct resource *platform_device_resource(struct platform_device *dev, unsigned int mask, int nr) | ||
| 905 | { | ||
| 906 | int i; | ||
| 907 | |||
| 908 | for (i = 0; i < dev->num_resources; i++) | ||
| 909 | if (dev->resource[i].flags == mask && nr-- == 0) | ||
| 910 | return &dev->resource[i]; | ||
| 911 | return NULL; | ||
| 912 | } | ||
| 913 | |||
| 914 | static int platform_device_irq(struct platform_device *dev, int nr) | ||
| 915 | { | ||
| 916 | int i; | ||
| 917 | |||
| 918 | for (i = 0; i < dev->num_resources; i++) | ||
| 919 | if (dev->resource[i].flags == IORESOURCE_IRQ && nr-- == 0) | ||
| 920 | return dev->resource[i].start; | ||
| 921 | return NO_IRQ; | ||
| 922 | } | ||
| 923 | |||
| 924 | static void imxmci_check_status(unsigned long data) | 904 | static void imxmci_check_status(unsigned long data) |
| 925 | { | 905 | { |
| 926 | struct imxmci_host *host = (struct imxmci_host *)data; | 906 | struct imxmci_host *host = (struct imxmci_host *)data; |
| @@ -956,13 +936,12 @@ static int imxmci_probe(struct platform_device *pdev) | |||
| 956 | 936 | ||
| 957 | printk(KERN_INFO "i.MX mmc driver\n"); | 937 | printk(KERN_INFO "i.MX mmc driver\n"); |
| 958 | 938 | ||
| 959 | r = platform_device_resource(pdev, IORESOURCE_MEM, 0); | 939 | r = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
| 960 | irq = platform_device_irq(pdev, 0); | 940 | irq = platform_get_irq(pdev, 0); |
| 961 | if (!r || irq == NO_IRQ) | 941 | if (!r || irq < 0) |
| 962 | return -ENXIO; | 942 | return -ENXIO; |
| 963 | 943 | ||
| 964 | r = request_mem_region(r->start, 0x100, "IMXMCI"); | 944 | if (!request_mem_region(r->start, 0x100, pdev->name)) |
| 965 | if (!r) | ||
| 966 | return -EBUSY; | 945 | return -EBUSY; |
| 967 | 946 | ||
| 968 | mmc = mmc_alloc_host(sizeof(struct imxmci_host), &pdev->dev); | 947 | mmc = mmc_alloc_host(sizeof(struct imxmci_host), &pdev->dev); |
| @@ -1067,7 +1046,7 @@ out: | |||
| 1067 | } | 1046 | } |
| 1068 | if (mmc) | 1047 | if (mmc) |
| 1069 | mmc_free_host(mmc); | 1048 | mmc_free_host(mmc); |
| 1070 | release_resource(r); | 1049 | release_mem_region(r->start, 0x100); |
| 1071 | return ret; | 1050 | return ret; |
| 1072 | } | 1051 | } |
| 1073 | 1052 | ||
| @@ -1096,7 +1075,7 @@ static int imxmci_remove(struct platform_device *pdev) | |||
| 1096 | clk_disable(host->clk); | 1075 | clk_disable(host->clk); |
| 1097 | clk_put(host->clk); | 1076 | clk_put(host->clk); |
| 1098 | 1077 | ||
| 1099 | release_resource(host->res); | 1078 | release_mem_region(host->res->start, 0x100); |
| 1100 | 1079 | ||
| 1101 | mmc_free_host(mmc); | 1080 | mmc_free_host(mmc); |
| 1102 | } | 1081 | } |
