summaryrefslogtreecommitdiffstats
path: root/drivers/i2c
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/i2c
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/i2c')
-rw-r--r--drivers/i2c/busses/i2c-at91.c6
-rw-r--r--drivers/i2c/busses/i2c-designware.c8
-rw-r--r--drivers/i2c/busses/i2c-imx.c8
-rw-r--r--drivers/i2c/busses/i2c-mv64xxx.c8
-rw-r--r--drivers/i2c/busses/i2c-omap.c8
-rw-r--r--drivers/i2c/busses/i2c-tegra.c8
-rw-r--r--drivers/i2c/busses/i2c-versatile.c8
7 files changed, 35 insertions, 19 deletions
diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c
index 6db724334e..76bb51bf30 100644
--- a/drivers/i2c/busses/i2c-at91.c
+++ b/drivers/i2c/busses/i2c-at91.c
@@ -410,6 +410,7 @@ static struct of_device_id at91_twi_dt_ids[] = {
static int at91_twi_probe(struct device_d *dev)
{
+ struct resource *iores;
struct at91_twi_dev *i2c_at91;
struct at91_twi_pdata *i2c_data;
int rc = 0;
@@ -425,7 +426,10 @@ static int at91_twi_probe(struct device_d *dev)
i2c_at91->pdata = i2c_data;
- i2c_at91->base = dev_request_mem_region(dev, 0);
+ iores = dev_request_mem_resource(dev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ i2c_at91->base = IOMEM(iores->start);
if (IS_ERR(i2c_at91->base)) {
dev_err(dev, "could not get memory region\n");
rc = PTR_ERR(i2c_at91->base);
diff --git a/drivers/i2c/busses/i2c-designware.c b/drivers/i2c/busses/i2c-designware.c
index a51439f2d5..0b022afd30 100644
--- a/drivers/i2c/busses/i2c-designware.c
+++ b/drivers/i2c/busses/i2c-designware.c
@@ -472,6 +472,7 @@ static int i2c_dw_xfer(struct i2c_adapter *adapter,
static int i2c_dw_probe(struct device_d *pdev)
{
+ struct resource *iores;
struct dw_i2c_dev *dw;
struct i2c_platform_data *pdata;
int ret, bitrate;
@@ -494,11 +495,12 @@ static int i2c_dw_probe(struct device_d *pdev)
dw->adapter.dev.parent = pdev;
dw->adapter.dev.device_node = pdev->device_node;
- dw->base = dev_request_mem_region(pdev, 0);
- if (IS_ERR(dw->base)) {
- ret = PTR_ERR(dw->base);
+ iores = dev_request_mem_resource(pdev, 0);
+ if (IS_ERR(iores)) {
+ ret = PTR_ERR(iores);
goto fail;
}
+ dw->base = IOMEM(iores->start);
ic_comp_type_value = readl(dw->base + DW_IC_COMP_TYPE);
if (ic_comp_type_value != DW_IC_COMP_TYPE_VALUE) {
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index affc277164..e407896394 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -584,6 +584,7 @@ static void i2c_fsl_init_recovery(struct fsl_i2c_struct *i2c_fsl, struct device_
static int __init i2c_fsl_probe(struct device_d *pdev)
{
+ struct resource *iores;
struct fsl_i2c_struct *i2c_fsl;
struct i2c_platform_data *pdata;
int ret;
@@ -604,11 +605,12 @@ static int __init i2c_fsl_probe(struct device_d *pdev)
i2c_fsl->adapter.nr = pdev->id;
i2c_fsl->adapter.dev.parent = pdev;
i2c_fsl->adapter.dev.device_node = pdev->device_node;
- i2c_fsl->base = dev_request_mem_region(pdev, 0);
- if (IS_ERR(i2c_fsl->base)) {
- ret = PTR_ERR(i2c_fsl->base);
+ iores = dev_request_mem_resource(pdev, 0);
+ if (IS_ERR(iores)) {
+ ret = PTR_ERR(iores);
goto fail;
}
+ i2c_fsl->base = IOMEM(iores->start);
i2c_fsl_init_recovery(i2c_fsl, pdev);
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c
index 0c38e64145..9b9e6c953f 100644
--- a/drivers/i2c/busses/i2c-mv64xxx.c
+++ b/drivers/i2c/busses/i2c-mv64xxx.c
@@ -595,6 +595,7 @@ out:
static int
mv64xxx_i2c_probe(struct device_d *pd)
{
+ struct resource *iores;
struct mv64xxx_i2c_data *drv_data;
int rc;
@@ -603,9 +604,10 @@ mv64xxx_i2c_probe(struct device_d *pd)
drv_data = xzalloc(sizeof(*drv_data));
- drv_data->reg_base = dev_request_mem_region(pd, 0);
- if (IS_ERR(drv_data->reg_base))
- return PTR_ERR(drv_data->reg_base);
+ iores = dev_request_mem_resource(pd, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ drv_data->reg_base = IOMEM(iores->start);
drv_data->clk = clk_get(pd, NULL);
if (IS_ERR(drv_data->clk))
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
index 48c55daeda..bdb34ca1b4 100644
--- a/drivers/i2c/busses/i2c-omap.c
+++ b/drivers/i2c/busses/i2c-omap.c
@@ -1070,6 +1070,7 @@ static struct i2c_bus_recovery_info omap_i2c_bus_recovery_info = {
static int __init
i2c_omap_probe(struct device_d *pdev)
{
+ struct resource *iores;
struct omap_i2c_struct *i2c_omap;
struct omap_i2c_driver_data *i2c_data;
int r;
@@ -1109,9 +1110,10 @@ i2c_omap_probe(struct device_d *pdev)
speed = 100; /* Default speed */
i2c_omap->speed = speed;
- i2c_omap->base = dev_request_mem_region(pdev, 0);
- if (IS_ERR(i2c_omap->base))
- return PTR_ERR(i2c_omap->base);
+ iores = dev_request_mem_resource(pdev, 0);
+ if (IS_ERR(iores))
+ return PTR_ERR(iores);
+ i2c_omap->base = IOMEM(iores->start);
/*
* Read the Rev hi bit-[15:14] ie scheme this is 1 indicates ver2.
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
index a6c6596f63..d56c0def65 100644
--- a/drivers/i2c/busses/i2c-tegra.c
+++ b/drivers/i2c/busses/i2c-tegra.c
@@ -605,16 +605,18 @@ static const struct tegra_i2c_hw_feature tegra114_i2c_hw = {
static int tegra_i2c_probe(struct device_d *dev)
{
+ struct resource *iores;
struct tegra_i2c_dev *i2c_dev;
struct clk *div_clk, *fast_clk;
void __iomem *base;
int ret = 0;
- base = dev_request_mem_region(dev, 0);
- if (IS_ERR(base)) {
+ iores = dev_request_mem_resource(dev, 0);
+ if (IS_ERR(iores)) {
dev_err(dev, "could not get iomem region\n");
- return PTR_ERR(base);
+ return PTR_ERR(iores);
}
+ base = IOMEM(iores->start);
div_clk = clk_get(dev, "div-clk");
if (IS_ERR(div_clk)) {
diff --git a/drivers/i2c/busses/i2c-versatile.c b/drivers/i2c/busses/i2c-versatile.c
index bfabc78312..6a00c2a2eb 100644
--- a/drivers/i2c/busses/i2c-versatile.c
+++ b/drivers/i2c/busses/i2c-versatile.c
@@ -66,6 +66,7 @@ static struct i2c_algo_bit_data i2c_versatile_algo = {
static int i2c_versatile_probe(struct device_d *dev)
{
+ struct resource *iores;
struct i2c_versatile *i2c;
int ret;
@@ -75,11 +76,12 @@ static int i2c_versatile_probe(struct device_d *dev)
goto err_release;
}
- i2c->base = dev_request_mem_region(dev, 0);
- if (IS_ERR(i2c->base)) {
- ret = PTR_ERR(i2c->base);
+ iores = dev_request_mem_resource(dev, 0);
+ if (IS_ERR(iores)) {
+ ret = PTR_ERR(iores);
goto err_free;
}
+ i2c->base = IOMEM(iores->start);
writel(SCL | SDA, i2c->base + I2C_CONTROLS);