December 22, 2023 at 1:52 PM, "Philipp Stanner" <pstanner@xxxxxxxxxx mailto:pstanner@xxxxxxxxxx?to=%22Philipp%20Stanner%22%20%3Cpstanner%40redhat.com%3E > wrote: > > tilcdc currently just ioremaps its iomem, without doing the (a bit more > robust) request on the memory first. The devm_ functions provide a handy > way to both request and ioremap the memory with automatic cleanup. > > Replace the manual ioremap with the devm_ version. > > Suggested-by: Thomas Zimmermann <tzimmermann@xxxxxxx> > Signed-off-by: Philipp Stanner <pstanner@xxxxxxxxxx> Reviewed-by: Jyri Sarha <jyri.sarha@xxxxxx> Tested-by: Jyri Sarha <jyri.sarha@xxxxxx> I'll apply this shortly to drm-misc-next. Thanks, Jyri > --- > drivers/gpu/drm/tilcdc/tilcdc_drv.c | 19 ++++--------------- > 1 file changed, 4 insertions(+), 15 deletions(-) > > diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c b/drivers/gpu/drm/tilcdc/tilcdc_drv.c > index 8ebd7134ee21..2ad3f44a6e2d 100644 > --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c > +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c > @@ -182,9 +182,6 @@ static void tilcdc_fini(struct drm_device *dev) > if (priv->clk) > clk_put(priv->clk); > > - if (priv->mmio) > - iounmap(priv->mmio); > - > if (priv->wq) > destroy_workqueue(priv->wq); > > @@ -201,7 +198,6 @@ static int tilcdc_init(const struct drm_driver *ddrv, struct device *dev) > struct platform_device *pdev = to_platform_device(dev); > struct device_node *node = dev->of_node; > struct tilcdc_drm_private *priv; > - struct resource *res; > u32 bpp = 0; > int ret; > > @@ -226,17 +222,10 @@ static int tilcdc_init(const struct drm_driver *ddrv, struct device *dev) > goto init_failed; > } > > - res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - if (!res) { > - dev_err(dev, "failed to get memory resource\n"); > - ret = -EINVAL; > - goto init_failed; > - } > - > - priv->mmio = ioremap(res->start, resource_size(res)); > - if (!priv->mmio) { > - dev_err(dev, "failed to ioremap\n"); > - ret = -ENOMEM; > + priv->mmio = devm_platform_ioremap_resource(pdev, 0); > + if (IS_ERR(priv->mmio)) { > + dev_err(dev, "failed to request / ioremap\n"); > + ret = PTR_ERR(priv->mmio); > goto init_failed; > } > > -- > 2.43.0 >