On Tue, Sep 15, 2020 at 02:38:18PM +0200, Paul Cercueil wrote: > Add support for static memory reserved from Device Tree. Since we're > using GEM buffers backed by CMA, it is interesting to have an option to > specify the CMA area where the GEM buffers will be allocated. > > Signed-off-by: Paul Cercueil <paul@xxxxxxxxxxxxxxx> Acked-by: Sam Ravnborg <sam@xxxxxxxxxxxx> > --- > drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 19 +++++++++++++++++++ > 1 file changed, 19 insertions(+) > > diff --git a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > index aa32660033d2..44b0d029095e 100644 > --- a/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > +++ b/drivers/gpu/drm/ingenic/ingenic-drm-drv.c > @@ -14,6 +14,7 @@ > #include <linux/module.h> > #include <linux/mutex.h> > #include <linux/of_device.h> > +#include <linux/of_reserved_mem.h> > #include <linux/platform_device.h> > #include <linux/regmap.h> > > @@ -827,6 +828,11 @@ static void ingenic_drm_unbind_all(void *d) > component_unbind_all(priv->dev, &priv->drm); > } > > +static void __maybe_unused ingenic_drm_release_rmem(void *d) > +{ > + of_reserved_mem_device_release(d); > +} > + > static int ingenic_drm_bind(struct device *dev, bool has_components) > { > struct platform_device *pdev = to_platform_device(dev); > @@ -848,6 +854,19 @@ static int ingenic_drm_bind(struct device *dev, bool has_components) > return -EINVAL; > } > > + if (IS_ENABLED(CONFIG_OF_RESERVED_MEM)) { > + ret = of_reserved_mem_device_init(dev); > + > + if (ret && ret != -ENODEV) > + return dev_err_probe(dev, ret, "Failed to get reserved memory\n"); > + > + if (ret != -ENODEV) { > + ret = devm_add_action_or_reset(dev, ingenic_drm_release_rmem, dev); > + if (ret) > + return ret; > + } > + } > + > priv = devm_drm_dev_alloc(dev, &ingenic_drm_driver_data, > struct ingenic_drm, drm); > if (IS_ERR(priv)) > -- > 2.28.0 _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel