summaryrefslogtreecommitdiffstats
path: root/drivers/mci
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2016-02-18 11:38:58 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2016-03-07 08:57:56 +0100
commit3bd69ad077a955b469baa90d938fd83510297335 (patch)
tree94d314d51fd295e6cb7de9f682582c29fdd50eed /drivers/mci
parentfe7855bb4f2d82ac4559c46c586c2f29e9f123e2 (diff)
downloadbarebox-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.c8
-rw-r--r--drivers/mci/dw_mmc.c8
-rw-r--r--drivers/mci/imx-esdhc.c8
-rw-r--r--drivers/mci/imx.c8
-rw-r--r--drivers/mci/mci-bcm2835.c8
-rw-r--r--drivers/mci/mxs.c8
-rw-r--r--drivers/mci/omap_hsmmc.c8
-rw-r--r--drivers/mci/pxamci.c8
-rw-r--r--drivers/mci/s3c.c8
-rw-r--r--drivers/mci/tegra-sdmmc.c8
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;