diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2016-02-18 11:38:58 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2016-03-07 08:57:56 +0100 |
commit | 3bd69ad077a955b469baa90d938fd83510297335 (patch) | |
tree | 94d314d51fd295e6cb7de9f682582c29fdd50eed /drivers/mci | |
parent | fe7855bb4f2d82ac4559c46c586c2f29e9f123e2 (diff) | |
download | barebox-3bd69ad077a955b469baa90d938fd83510297335.tar.gz barebox-3bd69ad077a955b469baa90d938fd83510297335.tar.xz |
driver: replace dev_request_mem_region with dev_request_mem_resource
dev_request_mem_region doesn't work properly one some SoCs on which
PTR_ERR() values clash with valid return values from dev_request_mem_region.
Replace them with dev_request_mem_resource where possible.
This patch has been generated with the following semantic patch:
// <smpl>
@@
expression d;
expression n;
expression io;
identifier func;
@@
func(...) {
+struct resource *iores;
<+...
-io = dev_request_mem_region(d, n);
-if (IS_ERR(io)) {
+iores = dev_request_mem_resource(d, n);
+if (IS_ERR(iores)) {
...
- return PTR_ERR(io);
-}
+ return PTR_ERR(iores);
+}
+io = IOMEM(iores->start);
...+>
}
@@
expression d;
expression n;
expression io;
identifier func;
@@
func(...) {
+struct resource *iores;
<+...
-io = dev_request_mem_region(d, n);
-if (IS_ERR(io)) {
+iores = dev_request_mem_resource(d, n);
+if (IS_ERR(iores))
- return PTR_ERR(io);
-}
+ return PTR_ERR(iores);
+io = IOMEM(iores->start);
...+>
}
@@
expression d;
expression n;
expression io;
identifier func;
@@
func(...) {
+struct resource *iores;
<+...
-io = dev_request_mem_region(d, n);
-if (IS_ERR(io)) {
- ret = PTR_ERR(io);
+iores = dev_request_mem_resource(d, n);
+if (IS_ERR(iores)) {
+ ret = PTR_ERR(iores);
...
}
+io = IOMEM(iores->start);
...+>
}
@@
expression d;
expression n;
expression io;
identifier func;
@@
func(...) {
+struct resource *iores;
<+...
-io = dev_request_mem_region(d, n);
+iores = dev_request_mem_resource(d, n);
+if (IS_ERR(iores))
+ return PTR_ERR(iores);
+io = IOMEM(iores->start);
...+>
}
@@
identifier func;
@@
func(...) {
<+...
struct resource *iores;
-struct resource *iores;
...+>
}
// </smpl>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/mci')
-rw-r--r-- | drivers/mci/atmel_mci.c | 8 | ||||
-rw-r--r-- | drivers/mci/dw_mmc.c | 8 | ||||
-rw-r--r-- | drivers/mci/imx-esdhc.c | 8 | ||||
-rw-r--r-- | drivers/mci/imx.c | 8 | ||||
-rw-r--r-- | drivers/mci/mci-bcm2835.c | 8 | ||||
-rw-r--r-- | drivers/mci/mxs.c | 8 | ||||
-rw-r--r-- | drivers/mci/omap_hsmmc.c | 8 | ||||
-rw-r--r-- | drivers/mci/pxamci.c | 8 | ||||
-rw-r--r-- | drivers/mci/s3c.c | 8 | ||||
-rw-r--r-- | drivers/mci/tegra-sdmmc.c | 8 |
10 files changed, 50 insertions, 30 deletions
diff --git a/drivers/mci/atmel_mci.c b/drivers/mci/atmel_mci.c index 10e769ea13..2a0ddb052b 100644 --- a/drivers/mci/atmel_mci.c +++ b/drivers/mci/atmel_mci.c @@ -533,6 +533,7 @@ static void atmci_get_cap(struct atmel_mci *host) static int atmci_probe(struct device_d *hw_dev) { + struct resource *iores; struct atmel_mci *host; struct atmel_mci_platform_data *pd = hw_dev->platform_data; int ret; @@ -572,9 +573,10 @@ static int atmci_probe(struct device_d *hw_dev) host->mci.host_caps |= MMC_CAP_8_BIT_DATA; host->slot_b = pd->slot_b; - host->regs = dev_request_mem_region(hw_dev, 0); - if (IS_ERR(host->regs)) - return PTR_ERR(host->regs); + iores = dev_request_mem_resource(hw_dev, 0); + if (IS_ERR(iores)) + return PTR_ERR(iores); + host->regs = IOMEM(iores->start); host->hw_dev = hw_dev; hw_dev->priv = host; host->clk = clk_get(hw_dev, "mci_clk"); diff --git a/drivers/mci/dw_mmc.c b/drivers/mci/dw_mmc.c index cbd3f00646..0e004abe31 100644 --- a/drivers/mci/dw_mmc.c +++ b/drivers/mci/dw_mmc.c @@ -675,6 +675,7 @@ static int dw_mmc_detect(struct device_d *dev) static int dw_mmc_probe(struct device_d *dev) { + struct resource *iores; struct dwmci_host *host; struct dw_mmc_platform_data *pdata = dev->platform_data; @@ -692,9 +693,10 @@ static int dw_mmc_probe(struct device_d *dev) clk_enable(host->clk_ciu); host->dev = dev; - host->ioaddr = dev_request_mem_region(dev, 0); - if (IS_ERR(host->ioaddr)) - return PTR_ERR(host->ioaddr); + iores = dev_request_mem_resource(dev, 0); + if (IS_ERR(iores)) + return PTR_ERR(iores); + host->ioaddr = IOMEM(iores->start); host->idmac = dma_alloc_coherent(sizeof(*host->idmac) * DW_MMC_NUM_IDMACS, DMA_ADDRESS_BROKEN); diff --git a/drivers/mci/imx-esdhc.c b/drivers/mci/imx-esdhc.c index 6caf165616..282887ba78 100644 --- a/drivers/mci/imx-esdhc.c +++ b/drivers/mci/imx-esdhc.c @@ -545,6 +545,7 @@ static int fsl_esdhc_detect(struct device_d *dev) static int fsl_esdhc_probe(struct device_d *dev) { + struct resource *iores; struct fsl_esdhc_host *host; struct mci_host *mci; u32 caps; @@ -560,9 +561,10 @@ static int fsl_esdhc_probe(struct device_d *dev) return PTR_ERR(host->clk); host->dev = dev; - host->regs = dev_request_mem_region(dev, 0); - if (IS_ERR(host->regs)) - return PTR_ERR(host->regs); + iores = dev_request_mem_resource(dev, 0); + if (IS_ERR(iores)) + return PTR_ERR(iores); + host->regs = IOMEM(iores->start); /* First reset the eSDHC controller */ ret = esdhc_reset(host); diff --git a/drivers/mci/imx.c b/drivers/mci/imx.c index 9c8c1b1e27..2788fb9d9d 100644 --- a/drivers/mci/imx.c +++ b/drivers/mci/imx.c @@ -492,6 +492,7 @@ static int mxcmci_init(struct mci_host *mci, struct device_d *dev) static int mxcmci_probe(struct device_d *dev) { + struct resource *iores; struct mxcmci_host *host; unsigned long rate; @@ -507,9 +508,10 @@ static int mxcmci_probe(struct device_d *dev) host->mci.host_caps = MMC_CAP_4_BIT_DATA; host->mci.hw_dev = dev; - host->base = dev_request_mem_region(dev, 0); - if (IS_ERR(host->base)) - return PTR_ERR(host->base); + iores = dev_request_mem_resource(dev, 0); + if (IS_ERR(iores)) + return PTR_ERR(iores); + host->base = IOMEM(iores->start); host->mci.voltages = MMC_VDD_32_33 | MMC_VDD_33_34; diff --git a/drivers/mci/mci-bcm2835.c b/drivers/mci/mci-bcm2835.c index 59c667f5c9..c7a8cf972a 100644 --- a/drivers/mci/mci-bcm2835.c +++ b/drivers/mci/mci-bcm2835.c @@ -480,6 +480,7 @@ static int bcm2835_mci_detect(struct device_d *dev) static int bcm2835_mci_probe(struct device_d *hw_dev) { + struct resource *iores; struct bcm2835_mci_host *host; static struct clk *clk; int ret; @@ -505,11 +506,12 @@ static int bcm2835_mci_probe(struct device_d *hw_dev) host->mci.hw_dev = hw_dev; host->hw_dev = hw_dev; host->max_clock = clk_get_rate(clk); - host->regs = dev_request_mem_region(hw_dev, 0); - if (IS_ERR(host->regs)) { + iores = dev_request_mem_resource(hw_dev, 0); + if (IS_ERR(iores)) { dev_err(host->hw_dev, "Failed request mem region, aborting...\n"); - return PTR_ERR(host->regs); + return PTR_ERR(iores); } + host->regs = IOMEM(iores->start); host->mci.host_caps |= MMC_CAP_4_BIT_DATA | MMC_CAP_SD_HIGHSPEED | MMC_CAP_MMC_HIGHSPEED; diff --git a/drivers/mci/mxs.c b/drivers/mci/mxs.c index b36fb13254..2355651022 100644 --- a/drivers/mci/mxs.c +++ b/drivers/mci/mxs.c @@ -544,6 +544,7 @@ static void mxs_mci_info(struct device_d *hw_dev) static int mxs_mci_probe(struct device_d *hw_dev) { + struct resource *iores; struct mxs_mci_platform_data *pd = hw_dev->platform_data; struct mxs_mci_host *mxs_mci; struct mci_host *host; @@ -557,9 +558,10 @@ static int mxs_mci_probe(struct device_d *hw_dev) host->send_cmd = mxs_mci_request; host->set_ios = mxs_mci_set_ios; host->init = mxs_mci_initialize; - mxs_mci->regs = dev_request_mem_region(hw_dev, 0); - if (IS_ERR(mxs_mci->regs)) - return PTR_ERR(mxs_mci->regs); + iores = dev_request_mem_resource(hw_dev, 0); + if (IS_ERR(iores)) + return PTR_ERR(iores); + mxs_mci->regs = IOMEM(iores->start); /* feed forward the platform specific values */ if (pd) { diff --git a/drivers/mci/omap_hsmmc.c b/drivers/mci/omap_hsmmc.c index 752787aa43..180afb16c9 100644 --- a/drivers/mci/omap_hsmmc.c +++ b/drivers/mci/omap_hsmmc.c @@ -584,6 +584,7 @@ static int omap_mmc_detect(struct device_d *dev) static int omap_mmc_probe(struct device_d *dev) { + struct resource *iores; struct omap_hsmmc *hsmmc; struct omap_hsmmc_platform_data *pdata; struct omap_mmc_driver_data *drvdata; @@ -604,9 +605,10 @@ static int omap_mmc_probe(struct device_d *dev) MMC_CAP_MMC_HIGHSPEED | MMC_CAP_8_BIT_DATA; hsmmc->mci.hw_dev = dev; - hsmmc->iobase = dev_request_mem_region(dev, 0); - if (IS_ERR(hsmmc->iobase)) - return PTR_ERR(hsmmc->iobase); + iores = dev_request_mem_resource(dev, 0); + if (IS_ERR(iores)) + return PTR_ERR(iores); + hsmmc->iobase = IOMEM(iores->start); hsmmc->base = hsmmc->iobase + reg_ofs; hsmmc->mci.voltages = MMC_VDD_32_33 | MMC_VDD_33_34; diff --git a/drivers/mci/pxamci.c b/drivers/mci/pxamci.c index 6b14aba509..1a33661d0f 100644 --- a/drivers/mci/pxamci.c +++ b/drivers/mci/pxamci.c @@ -334,14 +334,16 @@ static int pxamci_init(struct mci_host *mci, struct device_d *dev) static int pxamci_probe(struct device_d *dev) { + struct resource *iores; struct pxamci_host *host; int gpio_power = -1; clk_enable(); host = xzalloc(sizeof(*host)); - host->base = dev_request_mem_region(dev, 0); - if (IS_ERR(host->base)) - return PTR_ERR(host->base); + iores = dev_request_mem_resource(dev, 0); + if (IS_ERR(iores)) + return PTR_ERR(iores); + host->base = IOMEM(iores->start); host->mci.init = pxamci_init; host->mci.send_cmd = pxamci_request; diff --git a/drivers/mci/s3c.c b/drivers/mci/s3c.c index 3afd61e491..86a83b63fa 100644 --- a/drivers/mci/s3c.c +++ b/drivers/mci/s3c.c @@ -723,6 +723,7 @@ static void s3c_info(struct device_d *hw_dev) static int s3c_mci_probe(struct device_d *hw_dev) { + struct resource *iores; struct s3c_mci_host *s3c_host; struct s3c_mci_platform_data *pd = hw_dev->platform_data; @@ -741,9 +742,10 @@ static int s3c_mci_probe(struct device_d *hw_dev) } hw_dev->priv = s3c_host; - s3c_host->base = dev_request_mem_region(hw_dev, 0); - if (IS_ERR(s3c_host->base)) - return PTR_ERR(s3c_host->base); + iores = dev_request_mem_resource(hw_dev, 0); + if (IS_ERR(iores)) + return PTR_ERR(iores); + s3c_host->base = IOMEM(iores->start); s3c_host->host.hw_dev = hw_dev; diff --git a/drivers/mci/tegra-sdmmc.c b/drivers/mci/tegra-sdmmc.c index 14c230483f..e465d891a2 100644 --- a/drivers/mci/tegra-sdmmc.c +++ b/drivers/mci/tegra-sdmmc.c @@ -422,6 +422,7 @@ static void tegra_sdmmc_parse_dt(struct tegra_sdmmc_host *host) static int tegra_sdmmc_probe(struct device_d *dev) { + struct resource *iores; struct tegra_sdmmc_host *host; struct mci_host *mci; int ret; @@ -437,11 +438,12 @@ static int tegra_sdmmc_probe(struct device_d *dev) if (IS_ERR(host->reset)) return PTR_ERR(host->reset); - host->regs = dev_request_mem_region(dev, 0); - if (IS_ERR(host->regs)) { + iores = dev_request_mem_resource(dev, 0); + if (IS_ERR(iores)) { dev_err(dev, "could not get iomem region\n"); - return PTR_ERR(host->regs); + return PTR_ERR(iores); } + host->regs = IOMEM(iores->start); mci->hw_dev = dev; mci->f_max = 48000000; |