* [RFC 00/42] devm improvement series, part #1
@ 2013-05-10 8:16 Wolfram Sang
2013-05-10 8:16 ` [RFC 03/42] drivers/cpufreq: don't check resource with devm_ioremap_resource Wolfram Sang
2013-05-10 8:17 ` [RFC 26/42] drivers/thermal: " Wolfram Sang
0 siblings, 2 replies; 6+ messages in thread
From: Wolfram Sang @ 2013-05-10 8:16 UTC (permalink / raw)
To: linux-kernel
Cc: Wan ZongShun, linux-mips, alsa-devel, linux-usb, Kevin Hilman,
Wolfram Sang, Alexander Shishkin, Viresh Kumar, Linus Walleij,
Matt Mackall, Sekhar Nori, linux-fbdev, dri-devel,
Jaroslav Kysela, linux-ide, Wim Van Sebroeck, netdev, linux-mtd,
linux-i2c, Evgeniy Polyakov, Jiri Slaby, ac100, devel, Kukjin Kim,
Russell King, Herbert Xu, Florian
Lately, I have been experimenting how to improve the devm interface to make
writing device drivers easier and less error prone while also getting rid of
its subtle issues. I think it has more potential but still needs work and
definately conistency, especiall in its usage.
The first thing I come up with is a low hanging fruit regarding
devm_ioremap_resouce(). This function already checks if the passed resource is
valid and gives an error message if not. So, we can remove similar checks from
the drivers and get rid of a bit of code and a number of inconsistent error
strings.
If generally accepted, I'd suggest I rerun my scripts again when rc1 is out and
ask Linus to pull this branch [1] directly? This series is merely to show what
I am up to.
Thanks,
Wolfram
[1] git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git devm_no_resource_check
Wolfram Sang (42):
drivers/ata: don't check resource with devm_ioremap_resource
drivers/char/hw_random: don't check resource with
devm_ioremap_resource
drivers/cpufreq: don't check resource with devm_ioremap_resource
drivers/dma: don't check resource with devm_ioremap_resource
drivers/gpio: don't check resource with devm_ioremap_resource
drivers/gpu/drm/exynos: don't check resource with
devm_ioremap_resource
drivers/gpu/host1x: don't check resource with devm_ioremap_resource
drivers/gpu/host1x/drm: don't check resource with
devm_ioremap_resource
drivers/i2c/busses: don't check resource with devm_ioremap_resource
drivers/input/keyboard: don't check resource with
devm_ioremap_resource
drivers/input/serio: don't check resource with devm_ioremap_resource
drivers/memory: don't check resource with devm_ioremap_resource
drivers/mfd: don't check resource with devm_ioremap_resource
drivers/misc: don't check resource with devm_ioremap_resource
drivers/mtd/maps: don't check resource with devm_ioremap_resource
drivers/mtd/nand: don't check resource with devm_ioremap_resource
drivers/net/ethernet/renesas: don't check resource with
devm_ioremap_resource
drivers/pinctrl: don't check resource with devm_ioremap_resource
drivers/pinctrl/spear: don't check resource with
devm_ioremap_resource
drivers/pwm: don't check resource with devm_ioremap_resource
drivers/remoteproc: don't check resource with devm_ioremap_resource
drivers/rtc: don't check resource with devm_ioremap_resource
drivers/spi: don't check resource with devm_ioremap_resource
drivers/staging/dwc2: don't check resource with devm_ioremap_resource
drivers/staging/nvec: don't check resource with devm_ioremap_resource
drivers/thermal: don't check resource with devm_ioremap_resource
drivers/tty/serial: don't check resource with devm_ioremap_resource
drivers/usb/chipidea: don't check resource with devm_ioremap_resource
drivers/usb/gadget: don't check resource with devm_ioremap_resource
drivers/usb/host: don't check resource with devm_ioremap_resource
drivers/usb/phy: don't check resource with devm_ioremap_resource
drivers/video: don't check resource with devm_ioremap_resource
drivers/video/omap2: don't check resource with devm_ioremap_resource
drivers/video/omap2/dss: don't check resource with
devm_ioremap_resource
drivers/w1/masters: don't check resource with devm_ioremap_resource
drivers/watchdog: don't check resource with devm_ioremap_resource
arch/arm/mach-tegra: don't check resource with devm_ioremap_resource
arch/arm/plat-omap: don't check resource with devm_ioremap_resource
arch/arm/plat-samsung: don't check resource with
devm_ioremap_resource
arch/mips/lantiq/xway: don't check resource with
devm_ioremap_resource
sound/soc/fsl: don't check resource with devm_ioremap_resource
sound/soc/kirkwood: don't check resource with devm_ioremap_resource
arch/arm/mach-tegra/tegra2_emc.c | 5 -----
arch/arm/plat-omap/dmtimer.c | 7 +------
arch/arm/plat-samsung/adc.c | 5 -----
arch/mips/lantiq/xway/gptu.c | 7 +------
drivers/ata/pata_ep93xx.c | 5 -----
drivers/char/hw_random/mxc-rnga.c | 6 ------
drivers/char/hw_random/omap-rng.c | 5 -----
drivers/cpufreq/kirkwood-cpufreq.c | 4 ----
drivers/dma/tegra20-apb-dma.c | 5 -----
drivers/gpio/gpio-mvebu.c | 12 +-----------
drivers/gpio/gpio-spear-spics.c | 7 +------
drivers/gpio/gpio-tegra.c | 5 -----
drivers/gpu/drm/exynos/exynos_hdmi.c | 5 -----
drivers/gpu/host1x/dev.c | 7 +------
drivers/gpu/host1x/drm/dc.c | 5 -----
drivers/i2c/busses/i2c-davinci.c | 6 +-----
drivers/i2c/busses/i2c-designware-platdrv.c | 6 +-----
drivers/i2c/busses/i2c-imx.c | 6 +-----
drivers/i2c/busses/i2c-omap.c | 6 +-----
drivers/i2c/busses/i2c-rcar.c | 7 +------
drivers/i2c/busses/i2c-s3c2410.c | 5 -----
drivers/i2c/busses/i2c-sirf.c | 6 ------
drivers/i2c/busses/i2c-tegra.c | 5 -----
drivers/input/keyboard/imx_keypad.c | 7 +------
drivers/input/keyboard/spear-keyboard.c | 7 +------
drivers/input/keyboard/tegra-kbc.c | 7 +------
drivers/input/serio/arc_ps2.c | 7 +------
drivers/memory/emif.c | 6 ------
drivers/mfd/intel_msic.c | 6 +-----
drivers/misc/atmel-ssc.c | 5 -----
drivers/mtd/maps/autcpu12-nvram.c | 7 +------
drivers/mtd/maps/lantiq-flash.c | 8 +-------
drivers/mtd/nand/lpc32xx_mlc.c | 5 -----
drivers/mtd/nand/lpc32xx_slc.c | 7 +------
drivers/net/ethernet/renesas/sh_eth.c | 14 +-------------
drivers/pinctrl/pinctrl-at91.c | 7 +------
drivers/pinctrl/pinctrl-coh901.c | 5 -----
drivers/pinctrl/pinctrl-exynos5440.c | 5 -----
drivers/pinctrl/pinctrl-samsung.c | 5 -----
drivers/pinctrl/pinctrl-xway.c | 4 ----
drivers/pinctrl/spear/pinctrl-plgpio.c | 7 +------
drivers/pwm/pwm-imx.c | 5 -----
drivers/pwm/pwm-puv3.c | 5 -----
drivers/pwm/pwm-pxa.c | 5 -----
drivers/pwm/pwm-spear.c | 7 +------
drivers/pwm/pwm-tegra.c | 5 -----
drivers/pwm/pwm-tiecap.c | 5 -----
drivers/pwm/pwm-tiehrpwm.c | 5 -----
drivers/pwm/pwm-tipwmss.c | 5 -----
drivers/pwm/pwm-vt8500.c | 5 -----
drivers/remoteproc/da8xx_remoteproc.c | 14 +-------------
drivers/rtc/rtc-nuc900.c | 6 +-----
drivers/rtc/rtc-omap.c | 5 -----
drivers/rtc/rtc-s3c.c | 5 -----
drivers/rtc/rtc-spear.c | 7 +------
drivers/rtc/rtc-tegra.c | 6 ------
drivers/spi/spi-bcm63xx.c | 8 +-------
drivers/spi/spi-ep93xx.c | 8 +-------
drivers/spi/spi-omap2-mcspi.c | 7 +------
drivers/spi/spi-s3c64xx.c | 7 +------
drivers/spi/spi-sirf.c | 7 +------
drivers/spi/spi-tegra114.c | 7 +------
drivers/spi/spi-tegra20-sflash.c | 5 -----
drivers/spi/spi-tegra20-slink.c | 7 +------
drivers/staging/dwc2/platform.c | 5 -----
drivers/staging/nvec/nvec.c | 5 -----
drivers/thermal/dove_thermal.c | 11 +----------
drivers/thermal/exynos_thermal.c | 5 -----
drivers/thermal/kirkwood_thermal.c | 7 +------
drivers/thermal/rcar_thermal.c | 6 +-----
drivers/tty/serial/serial-tegra.c | 6 +-----
drivers/usb/chipidea/core.c | 5 -----
drivers/usb/gadget/bcm63xx_udc.c | 10 ----------
drivers/usb/host/ehci-atmel.c | 9 +--------
drivers/usb/host/ehci-mxc.c | 8 +-------
drivers/usb/host/ehci-platform.c | 6 +-----
drivers/usb/host/ehci-sh.c | 10 +---------
drivers/usb/host/ohci-nxp.c | 6 ------
drivers/usb/host/ohci-platform.c | 7 +------
drivers/usb/phy/phy-mv-u3d-usb.c | 5 -----
drivers/usb/phy/phy-mxs-usb.c | 5 -----
drivers/usb/phy/phy-samsung-usb2.c | 5 -----
drivers/usb/phy/phy-samsung-usb3.c | 5 -----
drivers/video/mxsfb.c | 7 +------
drivers/video/omap2/dss/hdmi.c | 7 +------
drivers/video/omap2/vrfb.c | 5 -----
drivers/w1/masters/omap_hdq.c | 5 -----
drivers/watchdog/imx2_wdt.c | 5 -----
sound/soc/fsl/imx-ssi.c | 6 ------
sound/soc/kirkwood/kirkwood-i2s.c | 5 -----
90 files changed, 43 insertions(+), 525 deletions(-)
--
1.7.10.4
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
^ permalink raw reply [flat|nested] 6+ messages in thread* [RFC 03/42] drivers/cpufreq: don't check resource with devm_ioremap_resource 2013-05-10 8:16 [RFC 00/42] devm improvement series, part #1 Wolfram Sang @ 2013-05-10 8:16 ` Wolfram Sang 2013-05-10 11:09 ` Rafael J. Wysocki 2013-05-10 8:17 ` [RFC 26/42] drivers/thermal: " Wolfram Sang 1 sibling, 1 reply; 6+ messages in thread From: Wolfram Sang @ 2013-05-10 8:16 UTC (permalink / raw) To: linux-kernel Cc: Wolfram Sang, Rafael J. Wysocki, Viresh Kumar, cpufreq, linux-pm devm_ioremap_resource does sanity checks on the given resource. No need to duplicate this in the driver. Signed-off-by: Wolfram Sang <wsa@the-dreams.de> --- drivers/cpufreq/kirkwood-cpufreq.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/drivers/cpufreq/kirkwood-cpufreq.c b/drivers/cpufreq/kirkwood-cpufreq.c index d36ea8d..b2644af 100644 --- a/drivers/cpufreq/kirkwood-cpufreq.c +++ b/drivers/cpufreq/kirkwood-cpufreq.c @@ -171,10 +171,6 @@ static int kirkwood_cpufreq_probe(struct platform_device *pdev) priv.dev = &pdev->dev; res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) { - dev_err(&pdev->dev, "Cannot get memory resource\n"); - return -ENODEV; - } priv.base = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(priv.base)) return PTR_ERR(priv.base); -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [RFC 03/42] drivers/cpufreq: don't check resource with devm_ioremap_resource 2013-05-10 8:16 ` [RFC 03/42] drivers/cpufreq: don't check resource with devm_ioremap_resource Wolfram Sang @ 2013-05-10 11:09 ` Rafael J. Wysocki 0 siblings, 0 replies; 6+ messages in thread From: Rafael J. Wysocki @ 2013-05-10 11:09 UTC (permalink / raw) To: Wolfram Sang; +Cc: linux-kernel, Viresh Kumar, cpufreq, linux-pm On Friday, May 10, 2013 10:16:48 AM Wolfram Sang wrote: > devm_ioremap_resource does sanity checks on the given resource. No need to > duplicate this in the driver. > > Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Queued up for a post-3.10-rc1 push. Thanks, Rafael > --- > drivers/cpufreq/kirkwood-cpufreq.c | 4 ---- > 1 file changed, 4 deletions(-) > > diff --git a/drivers/cpufreq/kirkwood-cpufreq.c b/drivers/cpufreq/kirkwood-cpufreq.c > index d36ea8d..b2644af 100644 > --- a/drivers/cpufreq/kirkwood-cpufreq.c > +++ b/drivers/cpufreq/kirkwood-cpufreq.c > @@ -171,10 +171,6 @@ static int kirkwood_cpufreq_probe(struct platform_device *pdev) > priv.dev = &pdev->dev; > > res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (!res) { > - dev_err(&pdev->dev, "Cannot get memory resource\n"); > - return -ENODEV; > - } > priv.base = devm_ioremap_resource(&pdev->dev, res); > if (IS_ERR(priv.base)) > return PTR_ERR(priv.base); > -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [RFC 26/42] drivers/thermal: don't check resource with devm_ioremap_resource 2013-05-10 8:16 [RFC 00/42] devm improvement series, part #1 Wolfram Sang 2013-05-10 8:16 ` [RFC 03/42] drivers/cpufreq: don't check resource with devm_ioremap_resource Wolfram Sang @ 2013-05-10 8:17 ` Wolfram Sang 2013-05-10 13:50 ` Eduardo Valentin 2013-05-16 7:22 ` Zhang Rui 1 sibling, 2 replies; 6+ messages in thread From: Wolfram Sang @ 2013-05-10 8:17 UTC (permalink / raw) To: linux-kernel; +Cc: Wolfram Sang, Zhang Rui, linux-pm devm_ioremap_resource does sanity checks on the given resource. No need to duplicate this in the driver. Signed-off-by: Wolfram Sang <wsa@the-dreams.de> --- drivers/thermal/dove_thermal.c | 11 +---------- drivers/thermal/exynos_thermal.c | 5 ----- drivers/thermal/kirkwood_thermal.c | 7 +------ drivers/thermal/rcar_thermal.c | 6 +----- 4 files changed, 3 insertions(+), 26 deletions(-) diff --git a/drivers/thermal/dove_thermal.c b/drivers/thermal/dove_thermal.c index 3078c40..5c53c53 100644 --- a/drivers/thermal/dove_thermal.c +++ b/drivers/thermal/dove_thermal.c @@ -133,25 +133,16 @@ static int dove_thermal_probe(struct platform_device *pdev) struct resource *res; int ret; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) { - dev_err(&pdev->dev, "Failed to get platform resource\n"); - return -ENODEV; - } - priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); if (!priv) return -ENOMEM; + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); priv->sensor = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(priv->sensor)) return PTR_ERR(priv->sensor); res = platform_get_resource(pdev, IORESOURCE_MEM, 1); - if (!res) { - dev_err(&pdev->dev, "Failed to get platform resource\n"); - return -ENODEV; - } priv->control = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(priv->control)) return PTR_ERR(priv->control); diff --git a/drivers/thermal/exynos_thermal.c b/drivers/thermal/exynos_thermal.c index b777ae6..a7bef42 100644 --- a/drivers/thermal/exynos_thermal.c +++ b/drivers/thermal/exynos_thermal.c @@ -967,11 +967,6 @@ static int exynos_tmu_probe(struct platform_device *pdev) INIT_WORK(&data->irq_work, exynos_tmu_work); data->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!data->mem) { - dev_err(&pdev->dev, "Failed to get platform resource\n"); - return -ENOENT; - } - data->base = devm_ioremap_resource(&pdev->dev, data->mem); if (IS_ERR(data->base)) return PTR_ERR(data->base); diff --git a/drivers/thermal/kirkwood_thermal.c b/drivers/thermal/kirkwood_thermal.c index e5500ed..e3ca1b4 100644 --- a/drivers/thermal/kirkwood_thermal.c +++ b/drivers/thermal/kirkwood_thermal.c @@ -75,16 +75,11 @@ static int kirkwood_thermal_probe(struct platform_device *pdev) struct kirkwood_thermal_priv *priv; struct resource *res; - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); - if (!res) { - dev_err(&pdev->dev, "Failed to get platform resource\n"); - return -ENODEV; - } - priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); if (!priv) return -ENOMEM; + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); priv->sensor = devm_ioremap_resource(&pdev->dev, res); if (IS_ERR(priv->sensor)) return PTR_ERR(priv->sensor); diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c index 2cc5b61..b2217b3 100644 --- a/drivers/thermal/rcar_thermal.c +++ b/drivers/thermal/rcar_thermal.c @@ -385,11 +385,6 @@ static int rcar_thermal_probe(struct platform_device *pdev) * platform has IRQ support. * Then, drier use common register */ - res = platform_get_resource(pdev, IORESOURCE_MEM, mres++); - if (!res) { - dev_err(dev, "Could not get platform resource\n"); - return -ENODEV; - } ret = devm_request_irq(dev, irq->start, rcar_thermal_irq, 0, dev_name(dev), common); @@ -401,6 +396,7 @@ static int rcar_thermal_probe(struct platform_device *pdev) /* * rcar_has_irq_support() will be enabled */ + res = platform_get_resource(pdev, IORESOURCE_MEM, mres++); common->base = devm_ioremap_resource(dev, res); if (IS_ERR(common->base)) return PTR_ERR(common->base); -- 1.7.10.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [RFC 26/42] drivers/thermal: don't check resource with devm_ioremap_resource 2013-05-10 8:17 ` [RFC 26/42] drivers/thermal: " Wolfram Sang @ 2013-05-10 13:50 ` Eduardo Valentin 2013-05-16 7:22 ` Zhang Rui 1 sibling, 0 replies; 6+ messages in thread From: Eduardo Valentin @ 2013-05-10 13:50 UTC (permalink / raw) To: Wolfram Sang; +Cc: linux-kernel, Zhang Rui, linux-pm, eduardo.valentin [-- Attachment #1: Type: text/plain, Size: 4211 bytes --] Wolfram, On 10-05-2013 04:17, Wolfram Sang wrote: > devm_ioremap_resource does sanity checks on the given resource. No need to > duplicate this in the driver. > > Signed-off-by: Wolfram Sang <wsa@the-dreams.de> > --- > drivers/thermal/dove_thermal.c | 11 +---------- > drivers/thermal/exynos_thermal.c | 5 ----- > drivers/thermal/kirkwood_thermal.c | 7 +------ > drivers/thermal/rcar_thermal.c | 6 +----- You missed drivers/thermal/armada_thermal.c ? For the changes below: Acked-by: Eduardo Valentin <eduardo.valentin@ti.com> > 4 files changed, 3 insertions(+), 26 deletions(-) > > diff --git a/drivers/thermal/dove_thermal.c b/drivers/thermal/dove_thermal.c > index 3078c40..5c53c53 100644 > --- a/drivers/thermal/dove_thermal.c > +++ b/drivers/thermal/dove_thermal.c > @@ -133,25 +133,16 @@ static int dove_thermal_probe(struct platform_device *pdev) > struct resource *res; > int ret; > > - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (!res) { > - dev_err(&pdev->dev, "Failed to get platform resource\n"); > - return -ENODEV; > - } > - > priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); > if (!priv) > return -ENOMEM; > > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > priv->sensor = devm_ioremap_resource(&pdev->dev, res); > if (IS_ERR(priv->sensor)) > return PTR_ERR(priv->sensor); > > res = platform_get_resource(pdev, IORESOURCE_MEM, 1); > - if (!res) { > - dev_err(&pdev->dev, "Failed to get platform resource\n"); > - return -ENODEV; > - } > priv->control = devm_ioremap_resource(&pdev->dev, res); > if (IS_ERR(priv->control)) > return PTR_ERR(priv->control); > diff --git a/drivers/thermal/exynos_thermal.c b/drivers/thermal/exynos_thermal.c > index b777ae6..a7bef42 100644 > --- a/drivers/thermal/exynos_thermal.c > +++ b/drivers/thermal/exynos_thermal.c > @@ -967,11 +967,6 @@ static int exynos_tmu_probe(struct platform_device *pdev) > INIT_WORK(&data->irq_work, exynos_tmu_work); > > data->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (!data->mem) { > - dev_err(&pdev->dev, "Failed to get platform resource\n"); > - return -ENOENT; > - } > - > data->base = devm_ioremap_resource(&pdev->dev, data->mem); > if (IS_ERR(data->base)) > return PTR_ERR(data->base); > diff --git a/drivers/thermal/kirkwood_thermal.c b/drivers/thermal/kirkwood_thermal.c > index e5500ed..e3ca1b4 100644 > --- a/drivers/thermal/kirkwood_thermal.c > +++ b/drivers/thermal/kirkwood_thermal.c > @@ -75,16 +75,11 @@ static int kirkwood_thermal_probe(struct platform_device *pdev) > struct kirkwood_thermal_priv *priv; > struct resource *res; > > - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (!res) { > - dev_err(&pdev->dev, "Failed to get platform resource\n"); > - return -ENODEV; > - } > - > priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); > if (!priv) > return -ENOMEM; > > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > priv->sensor = devm_ioremap_resource(&pdev->dev, res); > if (IS_ERR(priv->sensor)) > return PTR_ERR(priv->sensor); > diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c > index 2cc5b61..b2217b3 100644 > --- a/drivers/thermal/rcar_thermal.c > +++ b/drivers/thermal/rcar_thermal.c > @@ -385,11 +385,6 @@ static int rcar_thermal_probe(struct platform_device *pdev) > * platform has IRQ support. > * Then, drier use common register > */ > - res = platform_get_resource(pdev, IORESOURCE_MEM, mres++); > - if (!res) { > - dev_err(dev, "Could not get platform resource\n"); > - return -ENODEV; > - } > > ret = devm_request_irq(dev, irq->start, rcar_thermal_irq, 0, > dev_name(dev), common); > @@ -401,6 +396,7 @@ static int rcar_thermal_probe(struct platform_device *pdev) > /* > * rcar_has_irq_support() will be enabled > */ > + res = platform_get_resource(pdev, IORESOURCE_MEM, mres++); > common->base = devm_ioremap_resource(dev, res); > if (IS_ERR(common->base)) > return PTR_ERR(common->base); > [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 295 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [RFC 26/42] drivers/thermal: don't check resource with devm_ioremap_resource 2013-05-10 8:17 ` [RFC 26/42] drivers/thermal: " Wolfram Sang 2013-05-10 13:50 ` Eduardo Valentin @ 2013-05-16 7:22 ` Zhang Rui 1 sibling, 0 replies; 6+ messages in thread From: Zhang Rui @ 2013-05-16 7:22 UTC (permalink / raw) To: Wolfram Sang; +Cc: linux-kernel, linux-pm On Fri, 2013-05-10 at 10:17 +0200, Wolfram Sang wrote: > devm_ioremap_resource does sanity checks on the given resource. No need to > duplicate this in the driver. > > Signed-off-by: Wolfram Sang <wsa@the-dreams.de> applied to thermal -next. thanks, rui > --- > drivers/thermal/dove_thermal.c | 11 +---------- > drivers/thermal/exynos_thermal.c | 5 ----- > drivers/thermal/kirkwood_thermal.c | 7 +------ > drivers/thermal/rcar_thermal.c | 6 +----- > 4 files changed, 3 insertions(+), 26 deletions(-) > > diff --git a/drivers/thermal/dove_thermal.c b/drivers/thermal/dove_thermal.c > index 3078c40..5c53c53 100644 > --- a/drivers/thermal/dove_thermal.c > +++ b/drivers/thermal/dove_thermal.c > @@ -133,25 +133,16 @@ static int dove_thermal_probe(struct platform_device *pdev) > struct resource *res; > int ret; > > - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (!res) { > - dev_err(&pdev->dev, "Failed to get platform resource\n"); > - return -ENODEV; > - } > - > priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); > if (!priv) > return -ENOMEM; > > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > priv->sensor = devm_ioremap_resource(&pdev->dev, res); > if (IS_ERR(priv->sensor)) > return PTR_ERR(priv->sensor); > > res = platform_get_resource(pdev, IORESOURCE_MEM, 1); > - if (!res) { > - dev_err(&pdev->dev, "Failed to get platform resource\n"); > - return -ENODEV; > - } > priv->control = devm_ioremap_resource(&pdev->dev, res); > if (IS_ERR(priv->control)) > return PTR_ERR(priv->control); > diff --git a/drivers/thermal/exynos_thermal.c b/drivers/thermal/exynos_thermal.c > index b777ae6..a7bef42 100644 > --- a/drivers/thermal/exynos_thermal.c > +++ b/drivers/thermal/exynos_thermal.c > @@ -967,11 +967,6 @@ static int exynos_tmu_probe(struct platform_device *pdev) > INIT_WORK(&data->irq_work, exynos_tmu_work); > > data->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (!data->mem) { > - dev_err(&pdev->dev, "Failed to get platform resource\n"); > - return -ENOENT; > - } > - > data->base = devm_ioremap_resource(&pdev->dev, data->mem); > if (IS_ERR(data->base)) > return PTR_ERR(data->base); > diff --git a/drivers/thermal/kirkwood_thermal.c b/drivers/thermal/kirkwood_thermal.c > index e5500ed..e3ca1b4 100644 > --- a/drivers/thermal/kirkwood_thermal.c > +++ b/drivers/thermal/kirkwood_thermal.c > @@ -75,16 +75,11 @@ static int kirkwood_thermal_probe(struct platform_device *pdev) > struct kirkwood_thermal_priv *priv; > struct resource *res; > > - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (!res) { > - dev_err(&pdev->dev, "Failed to get platform resource\n"); > - return -ENODEV; > - } > - > priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); > if (!priv) > return -ENOMEM; > > + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > priv->sensor = devm_ioremap_resource(&pdev->dev, res); > if (IS_ERR(priv->sensor)) > return PTR_ERR(priv->sensor); > diff --git a/drivers/thermal/rcar_thermal.c b/drivers/thermal/rcar_thermal.c > index 2cc5b61..b2217b3 100644 > --- a/drivers/thermal/rcar_thermal.c > +++ b/drivers/thermal/rcar_thermal.c > @@ -385,11 +385,6 @@ static int rcar_thermal_probe(struct platform_device *pdev) > * platform has IRQ support. > * Then, drier use common register > */ > - res = platform_get_resource(pdev, IORESOURCE_MEM, mres++); > - if (!res) { > - dev_err(dev, "Could not get platform resource\n"); > - return -ENODEV; > - } > > ret = devm_request_irq(dev, irq->start, rcar_thermal_irq, 0, > dev_name(dev), common); > @@ -401,6 +396,7 @@ static int rcar_thermal_probe(struct platform_device *pdev) > /* > * rcar_has_irq_support() will be enabled > */ > + res = platform_get_resource(pdev, IORESOURCE_MEM, mres++); > common->base = devm_ioremap_resource(dev, res); > if (IS_ERR(common->base)) > return PTR_ERR(common->base); ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-05-16 7:23 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-05-10 8:16 [RFC 00/42] devm improvement series, part #1 Wolfram Sang 2013-05-10 8:16 ` [RFC 03/42] drivers/cpufreq: don't check resource with devm_ioremap_resource Wolfram Sang 2013-05-10 11:09 ` Rafael J. Wysocki 2013-05-10 8:17 ` [RFC 26/42] drivers/thermal: " Wolfram Sang 2013-05-10 13:50 ` Eduardo Valentin 2013-05-16 7:22 ` Zhang Rui
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox