diff mbox series

[v2.1] drm/komeda: Add support for 'memory-region' DT node property

Message ID 20190805095408.21285-1-mihail.atanassov@arm.com (mailing list archive)
State New, archived
Headers show
Series [v2.1] drm/komeda: Add support for 'memory-region' DT node property | expand

Commit Message

Mihail Atanassov Aug. 5, 2019, 9:56 a.m. UTC
The 'memory-region' property of the komeda display driver DT binding
allows the use of a 'reserved-memory' node for buffer allocations. Add
the requisite of_reserved_mem_device_{init,release} calls to actually
make use of the memory if present.

Changes since v1:
 - Move handling inside komeda_parse_dt

Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com>
---
 drivers/gpu/drm/arm/display/komeda/komeda_dev.c | 9 +++++++++
 1 file changed, 9 insertions(+)

Comments

James Qian Wang Aug. 5, 2019, 10:13 a.m. UTC | #1
On Mon, Aug 05, 2019 at 05:56:25PM +0800, Mihail Atanassov wrote:
> The 'memory-region' property of the komeda display driver DT binding
> allows the use of a 'reserved-memory' node for buffer allocations. Add
> the requisite of_reserved_mem_device_{init,release} calls to actually
> make use of the memory if present.
> 
> Changes since v1:
>  - Move handling inside komeda_parse_dt
> 
> Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com>
> ---
>  drivers/gpu/drm/arm/display/komeda/komeda_dev.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_dev.c b/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
> index 1ff7f4b2c620..0142ee991957 100644
> --- a/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
> +++ b/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
> @@ -8,6 +8,7 @@
>  #include <linux/iommu.h>
>  #include <linux/of_device.h>
>  #include <linux/of_graph.h>
> +#include <linux/of_reserved_mem.h>
>  #include <linux/platform_device.h>
>  #include <linux/dma-mapping.h>
>  #ifdef CONFIG_DEBUG_FS
> @@ -146,6 +147,12 @@ static int komeda_parse_dt(struct device *dev, struct komeda_dev *mdev)
>  		return mdev->irq;
>  	}
>  
> +	/* Get the optional framebuffer memory resource */
> +	ret = of_reserved_mem_device_init(dev);
> +	if (ret && ret != -ENODEV)
> +		return ret;
> +	ret = 0;
> +
>  	for_each_available_child_of_node(np, child) {
>  		if (of_node_cmp(child->name, "pipeline") == 0) {
>  			ret = komeda_parse_pipe_dt(mdev, child);
> @@ -292,6 +299,8 @@ void komeda_dev_destroy(struct komeda_dev *mdev)
>  
>  	mdev->n_pipelines = 0;
>  
> +	of_reserved_mem_device_release(dev);
> +
>  	if (funcs && funcs->cleanup)
>  		funcs->cleanup(mdev);
>  
> -- 
> 2.22.0


Thank you.

Reviewed-by: James Qian Wang (Arm Technology China) <james.qian.wang@arm.com>
Ayan Halder Aug. 20, 2019, 10:31 a.m. UTC | #2
On Mon, Aug 05, 2019 at 10:13:35AM +0000, james qian wang (Arm Technology China) wrote:
> On Mon, Aug 05, 2019 at 05:56:25PM +0800, Mihail Atanassov wrote:
> > The 'memory-region' property of the komeda display driver DT binding
> > allows the use of a 'reserved-memory' node for buffer allocations. Add
> > the requisite of_reserved_mem_device_{init,release} calls to actually
> > make use of the memory if present.
> > 
> > Changes since v1:
> >  - Move handling inside komeda_parse_dt
> > 
> > Signed-off-by: Mihail Atanassov <mihail.atanassov@arm.com>
> > ---
> >  drivers/gpu/drm/arm/display/komeda/komeda_dev.c | 9 +++++++++
> >  1 file changed, 9 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_dev.c b/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
> > index 1ff7f4b2c620..0142ee991957 100644
> > --- a/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
> > +++ b/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
> > @@ -8,6 +8,7 @@
> >  #include <linux/iommu.h>
> >  #include <linux/of_device.h>
> >  #include <linux/of_graph.h>
> > +#include <linux/of_reserved_mem.h>
> >  #include <linux/platform_device.h>
> >  #include <linux/dma-mapping.h>
> >  #ifdef CONFIG_DEBUG_FS
> > @@ -146,6 +147,12 @@ static int komeda_parse_dt(struct device *dev, struct komeda_dev *mdev)
> >  		return mdev->irq;
> >  	}
> >  
> > +	/* Get the optional framebuffer memory resource */
> > +	ret = of_reserved_mem_device_init(dev);
> > +	if (ret && ret != -ENODEV)
> > +		return ret;
> > +	ret = 0;
> > +
> >  	for_each_available_child_of_node(np, child) {
> >  		if (of_node_cmp(child->name, "pipeline") == 0) {
> >  			ret = komeda_parse_pipe_dt(mdev, child);
> > @@ -292,6 +299,8 @@ void komeda_dev_destroy(struct komeda_dev *mdev)
> >  
> >  	mdev->n_pipelines = 0;
> >  
> > +	of_reserved_mem_device_release(dev);
> > +
> >  	if (funcs && funcs->cleanup)
> >  		funcs->cleanup(mdev);
> >  
> > -- 
> > 2.22.0
> 
> 
> Thank you.
> 
> Reviewed-by: James Qian Wang (Arm Technology China) <james.qian.wang@arm.com>

Pushed to drm-misc-next - a8c16b7593bd1a4e613164a47c526ca9d1be764b
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox series

Patch

diff --git a/drivers/gpu/drm/arm/display/komeda/komeda_dev.c b/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
index 1ff7f4b2c620..0142ee991957 100644
--- a/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
+++ b/drivers/gpu/drm/arm/display/komeda/komeda_dev.c
@@ -8,6 +8,7 @@ 
 #include <linux/iommu.h>
 #include <linux/of_device.h>
 #include <linux/of_graph.h>
+#include <linux/of_reserved_mem.h>
 #include <linux/platform_device.h>
 #include <linux/dma-mapping.h>
 #ifdef CONFIG_DEBUG_FS
@@ -146,6 +147,12 @@  static int komeda_parse_dt(struct device *dev, struct komeda_dev *mdev)
 		return mdev->irq;
 	}
 
+	/* Get the optional framebuffer memory resource */
+	ret = of_reserved_mem_device_init(dev);
+	if (ret && ret != -ENODEV)
+		return ret;
+	ret = 0;
+
 	for_each_available_child_of_node(np, child) {
 		if (of_node_cmp(child->name, "pipeline") == 0) {
 			ret = komeda_parse_pipe_dt(mdev, child);
@@ -292,6 +299,8 @@  void komeda_dev_destroy(struct komeda_dev *mdev)
 
 	mdev->n_pipelines = 0;
 
+	of_reserved_mem_device_release(dev);
+
 	if (funcs && funcs->cleanup)
 		funcs->cleanup(mdev);