Message ID | 1554362243-2888-4-git-send-email-mojha@codeaurora.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Input: Use devm_platform_ioremap_resource() | expand |
Hi Mukesh, On Thu, Apr 04, 2019 at 12:47:21PM +0530, Mukesh Ojha wrote: > devm_platform_ioremap_resource() internally have platform_get_resource() > and devm_ioremap_resource() in it. So instead of calling them separately > use devm_platform_ioremap_resource() directly. > > Signed-off-by: Mukesh Ojha <mojha@codeaurora.org> > --- > drivers/input/touchscreen/s3c2410_ts.c | 10 +--------- > 1 file changed, 1 insertion(+), 9 deletions(-) > > diff --git a/drivers/input/touchscreen/s3c2410_ts.c b/drivers/input/touchscreen/s3c2410_ts.c > index 1173890..e11cdae 100644 > --- a/drivers/input/touchscreen/s3c2410_ts.c > +++ b/drivers/input/touchscreen/s3c2410_ts.c > @@ -242,7 +242,6 @@ static int s3c2410ts_probe(struct platform_device *pdev) > struct s3c2410_ts_mach_info *info; > struct device *dev = &pdev->dev; > struct input_dev *input_dev; > - struct resource *res; > int ret = -EINVAL; > > /* Initialise input stuff */ > @@ -277,14 +276,7 @@ static int s3c2410ts_probe(struct platform_device *pdev) > goto err_clk; > } > > - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (!res) { > - dev_err(dev, "no resource for registers\n"); > - ret = -ENOENT; > - goto err_clk; > - } > - > - ts.io = ioremap(res->start, resource_size(res)); > + ts.io = devm_platform_ioremap_resource(pdev, 0); This is not an equivalent transformation: the original code (rightly or wrongly) did not request the memory regions described by 'res' while new variant does. Also you can't simply slap a single devm resource in a driver that does not use managed resources as it messes up the release order.
diff --git a/drivers/input/touchscreen/s3c2410_ts.c b/drivers/input/touchscreen/s3c2410_ts.c index 1173890..e11cdae 100644 --- a/drivers/input/touchscreen/s3c2410_ts.c +++ b/drivers/input/touchscreen/s3c2410_ts.c @@ -242,7 +242,6 @@ static int s3c2410ts_probe(struct platform_device *pdev) struct s3c2410_ts_mach_info *info; struct device *dev = &pdev->dev; struct input_dev *input_dev; - struct resource *res; int ret = -EINVAL; /* Initialise input stuff */ @@ -277,14 +276,7 @@ static int s3c2410ts_probe(struct platform_device *pdev) goto err_clk; } - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) { - dev_err(dev, "no resource for registers\n"); - ret = -ENOENT; - goto err_clk; - } - - ts.io = ioremap(res->start, resource_size(res)); + ts.io = devm_platform_ioremap_resource(pdev, 0); if (ts.io == NULL) { dev_err(dev, "cannot map registers\n"); ret = -ENOMEM;
devm_platform_ioremap_resource() internally have platform_get_resource() and devm_ioremap_resource() in it. So instead of calling them separately use devm_platform_ioremap_resource() directly. Signed-off-by: Mukesh Ojha <mojha@codeaurora.org> --- drivers/input/touchscreen/s3c2410_ts.c | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-)