pt., 14 lut 2020 o 15:30 <qiwuchen55@xxxxxxxxx> napisał(a): > > From: chenqiwu <chenqiwu@xxxxxxxxxx> > > Use devm_platform_ioremap_resource_byname() instead of calling > platform_get_resource_byname() and devm_ioremap_resource() separately. > > Signed-off-by: chenqiwu <chenqiwu@xxxxxxxxxx> > --- > drivers/gpio/gpio-mmio.c | 26 +++++++------------------- > 1 file changed, 7 insertions(+), 19 deletions(-) > > diff --git a/drivers/gpio/gpio-mmio.c b/drivers/gpio/gpio-mmio.c > index f729e3e..5cfef3c 100644 > --- a/drivers/gpio/gpio-mmio.c > +++ b/drivers/gpio/gpio-mmio.c > @@ -655,21 +655,9 @@ int bgpio_init(struct gpio_chip *gc, struct device *dev, > #if IS_ENABLED(CONFIG_GPIO_GENERIC_PLATFORM) > > static void __iomem *bgpio_map(struct platform_device *pdev, > - const char *name, > - resource_size_t sane_sz) > + const char *name) > { > - struct resource *r; > - resource_size_t sz; > - > - r = platform_get_resource_byname(pdev, IORESOURCE_MEM, name); > - if (!r) > - return NULL; > - > - sz = resource_size(r); > - if (sz != sane_sz) > - return IOMEM_ERR_PTR(-EINVAL); > - > - return devm_ioremap_resource(&pdev->dev, r); > + return devm_platform_ioremap_resource_byname(pdev, name); > } > > #ifdef CONFIG_OF > @@ -742,23 +730,23 @@ static int bgpio_pdev_probe(struct platform_device *pdev) > > sz = resource_size(r); > > - dat = bgpio_map(pdev, "dat", sz); > + dat = bgpio_map(pdev, "dat"); > if (IS_ERR(dat)) > return PTR_ERR(dat); > > - set = bgpio_map(pdev, "set", sz); > + set = bgpio_map(pdev, "set"); > if (IS_ERR(set)) > return PTR_ERR(set); > > - clr = bgpio_map(pdev, "clr", sz); > + clr = bgpio_map(pdev, "clr"); > if (IS_ERR(clr)) > return PTR_ERR(clr); > > - dirout = bgpio_map(pdev, "dirout", sz); > + dirout = bgpio_map(pdev, "dirout"); > if (IS_ERR(dirout)) > return PTR_ERR(dirout); > > - dirin = bgpio_map(pdev, "dirin", sz); > + dirin = bgpio_map(pdev, "dirin"); > if (IS_ERR(dirin)) > return PTR_ERR(dirin); > > -- > 1.9.1 > Why not remove bgpio_map() entirely then? Bart