Re: [PATCH v7 1/3] of: Decrement refcount of previous endpoint in of_graph_get_next_endpoint

2015-01-13 Thread Tomi Valkeinen
On 23/12/14 15:09, Philipp Zabel wrote:
 Decrementing the reference count of the previous endpoint node allows to
 use the of_graph_get_next_endpoint function in a for_each_... style macro.
 All current users of this function that pass a non-NULL prev parameter
 (coresight, rcar-du, imx-drm, soc_camera, and omap2-dss) are changed to
 not decrement the passed prev argument's refcount themselves.
 
 Signed-off-by: Philipp Zabel p.za...@pengutronix.de
 Acked-by: Mauro Carvalho Chehab mche...@osg.samsung.com
 Acked-by: Mathieu Poirier mathieu.poir...@linaro.org
 ---
 Changes since v6:
  - Added omap2-dss.
  - Added Mathieu's ack.
 ---
  drivers/coresight/of_coresight.c  | 13 ++---
  drivers/gpu/drm/imx/imx-drm-core.c| 13 ++---
  drivers/gpu/drm/rcar-du/rcar_du_kms.c | 15 ---
  drivers/media/platform/soc_camera/soc_camera.c|  3 ++-
  drivers/of/base.c |  9 +
  drivers/video/fbdev/omap2/dss/omapdss-boot-init.c |  7 +--
  6 files changed, 12 insertions(+), 48 deletions(-)
 

For omapdss:

Acked-by: Tomi Valkeinen tomi.valkei...@ti.com

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH v7 1/3] of: Decrement refcount of previous endpoint in of_graph_get_next_endpoint

2014-12-26 Thread Laurent Pinchart
Hi Philipp,

Thank you for the patch.

On Tuesday 23 December 2014 14:09:16 Philipp Zabel wrote:
 Decrementing the reference count of the previous endpoint node allows to
 use the of_graph_get_next_endpoint function in a for_each_... style macro.
 All current users of this function that pass a non-NULL prev parameter
 (coresight, rcar-du, imx-drm, soc_camera, and omap2-dss) are changed to
 not decrement the passed prev argument's refcount themselves.
 
 Signed-off-by: Philipp Zabel p.za...@pengutronix.de
 Acked-by: Mauro Carvalho Chehab mche...@osg.samsung.com
 Acked-by: Mathieu Poirier mathieu.poir...@linaro.org
 ---
 Changes since v6:
  - Added omap2-dss.
  - Added Mathieu's ack.
 ---
  drivers/coresight/of_coresight.c  | 13 ++---
  drivers/gpu/drm/imx/imx-drm-core.c| 13 ++---
  drivers/gpu/drm/rcar-du/rcar_du_kms.c | 15 ---

For rcar-du,

Acked-by: Laurent Pinchart laurent.pinch...@ideasonboard.com

  drivers/media/platform/soc_camera/soc_camera.c|  3 ++-
  drivers/of/base.c |  9 +
  drivers/video/fbdev/omap2/dss/omapdss-boot-init.c |  7 +--
  6 files changed, 12 insertions(+), 48 deletions(-)
 
 diff --git a/drivers/coresight/of_coresight.c
 b/drivers/coresight/of_coresight.c index 5030c07..349c88b 100644
 --- a/drivers/coresight/of_coresight.c
 +++ b/drivers/coresight/of_coresight.c
 @@ -52,15 +52,6 @@ of_coresight_get_endpoint_device(struct device_node
 *endpoint) endpoint, of_dev_node_match);
  }
 
 -static struct device_node *of_get_coresight_endpoint(
 - const struct device_node *parent, struct device_node *prev)
 -{
 - struct device_node *node = of_graph_get_next_endpoint(parent, prev);
 -
 - of_node_put(prev);
 - return node;
 -}
 -
  static void of_coresight_get_ports(struct device_node *node,
  int *nr_inport, int *nr_outport)
  {
 @@ -68,7 +59,7 @@ static void of_coresight_get_ports(struct device_node
 *node, int in = 0, out = 0;
 
   do {
 - ep = of_get_coresight_endpoint(node, ep);
 + ep = of_graph_get_next_endpoint(node, ep);
   if (!ep)
   break;
 
 @@ -140,7 +131,7 @@ struct coresight_platform_data
 *of_get_coresight_platform_data( /* Iterate through each port to discover
 topology */
   do {
   /* Get a handle on a port */
 - ep = of_get_coresight_endpoint(node, ep);
 + ep = of_graph_get_next_endpoint(node, ep);
   if (!ep)
   break;
 
 diff --git a/drivers/gpu/drm/imx/imx-drm-core.c
 b/drivers/gpu/drm/imx/imx-drm-core.c index b250130..fed627d 100644
 --- a/drivers/gpu/drm/imx/imx-drm-core.c
 +++ b/drivers/gpu/drm/imx/imx-drm-core.c
 @@ -436,15 +436,6 @@ static uint32_t imx_drm_find_crtc_mask(struct
 imx_drm_device *imxdrm, return 0;
  }
 
 -static struct device_node *imx_drm_of_get_next_endpoint(
 - const struct device_node *parent, struct device_node *prev)
 -{
 - struct device_node *node = of_graph_get_next_endpoint(parent, prev);
 -
 - of_node_put(prev);
 - return node;
 -}
 -
  int imx_drm_encoder_parse_of(struct drm_device *drm,
   struct drm_encoder *encoder, struct device_node *np)
  {
 @@ -456,7 +447,7 @@ int imx_drm_encoder_parse_of(struct drm_device *drm,
   for (i = 0; ; i++) {
   u32 mask;
 
 - ep = imx_drm_of_get_next_endpoint(np, ep);
 + ep = of_graph_get_next_endpoint(np, ep);
   if (!ep)
   break;
 
 @@ -504,7 +495,7 @@ int imx_drm_encoder_get_mux_id(struct device_node *node,
 return -EINVAL;
 
   do {
 - ep = imx_drm_of_get_next_endpoint(node, ep);
 + ep = of_graph_get_next_endpoint(node, ep);
   if (!ep)
   break;
 
 diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c
 b/drivers/gpu/drm/rcar-du/rcar_du_kms.c index 0c5ee61..480c4d9 100644
 --- a/drivers/gpu/drm/rcar-du/rcar_du_kms.c
 +++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.c
 @@ -206,7 +206,7 @@ static int rcar_du_encoders_init_one(struct
 rcar_du_device *rcdu, enum rcar_du_encoder_type enc_type =
 RCAR_DU_ENCODER_NONE;
   struct device_node *connector = NULL;
   struct device_node *encoder = NULL;
 - struct device_node *prev = NULL;
 + struct device_node *ep_node = NULL;
   struct device_node *entity_ep_node;
   struct device_node *entity;
   int ret;
 @@ -225,11 +225,7 @@ static int rcar_du_encoders_init_one(struct
 rcar_du_device *rcdu, entity_ep_node = of_parse_phandle(ep-local_node,
 remote-endpoint, 0);
 
   while (1) {
 - struct device_node *ep_node;
 -
 - ep_node = of_graph_get_next_endpoint(entity, prev);
 - of_node_put(prev);
 - prev = ep_node;
 + ep_node = of_graph_get_next_endpoint(entity, ep_node);
 

[PATCH v7 1/3] of: Decrement refcount of previous endpoint in of_graph_get_next_endpoint

2014-12-23 Thread Philipp Zabel
Decrementing the reference count of the previous endpoint node allows to
use the of_graph_get_next_endpoint function in a for_each_... style macro.
All current users of this function that pass a non-NULL prev parameter
(coresight, rcar-du, imx-drm, soc_camera, and omap2-dss) are changed to
not decrement the passed prev argument's refcount themselves.

Signed-off-by: Philipp Zabel p.za...@pengutronix.de
Acked-by: Mauro Carvalho Chehab mche...@osg.samsung.com
Acked-by: Mathieu Poirier mathieu.poir...@linaro.org
---
Changes since v6:
 - Added omap2-dss.
 - Added Mathieu's ack.
---
 drivers/coresight/of_coresight.c  | 13 ++---
 drivers/gpu/drm/imx/imx-drm-core.c| 13 ++---
 drivers/gpu/drm/rcar-du/rcar_du_kms.c | 15 ---
 drivers/media/platform/soc_camera/soc_camera.c|  3 ++-
 drivers/of/base.c |  9 +
 drivers/video/fbdev/omap2/dss/omapdss-boot-init.c |  7 +--
 6 files changed, 12 insertions(+), 48 deletions(-)

diff --git a/drivers/coresight/of_coresight.c b/drivers/coresight/of_coresight.c
index 5030c07..349c88b 100644
--- a/drivers/coresight/of_coresight.c
+++ b/drivers/coresight/of_coresight.c
@@ -52,15 +52,6 @@ of_coresight_get_endpoint_device(struct device_node 
*endpoint)
   endpoint, of_dev_node_match);
 }
 
-static struct device_node *of_get_coresight_endpoint(
-   const struct device_node *parent, struct device_node *prev)
-{
-   struct device_node *node = of_graph_get_next_endpoint(parent, prev);
-
-   of_node_put(prev);
-   return node;
-}
-
 static void of_coresight_get_ports(struct device_node *node,
   int *nr_inport, int *nr_outport)
 {
@@ -68,7 +59,7 @@ static void of_coresight_get_ports(struct device_node *node,
int in = 0, out = 0;
 
do {
-   ep = of_get_coresight_endpoint(node, ep);
+   ep = of_graph_get_next_endpoint(node, ep);
if (!ep)
break;
 
@@ -140,7 +131,7 @@ struct coresight_platform_data 
*of_get_coresight_platform_data(
/* Iterate through each port to discover topology */
do {
/* Get a handle on a port */
-   ep = of_get_coresight_endpoint(node, ep);
+   ep = of_graph_get_next_endpoint(node, ep);
if (!ep)
break;
 
diff --git a/drivers/gpu/drm/imx/imx-drm-core.c 
b/drivers/gpu/drm/imx/imx-drm-core.c
index b250130..fed627d 100644
--- a/drivers/gpu/drm/imx/imx-drm-core.c
+++ b/drivers/gpu/drm/imx/imx-drm-core.c
@@ -436,15 +436,6 @@ static uint32_t imx_drm_find_crtc_mask(struct 
imx_drm_device *imxdrm,
return 0;
 }
 
-static struct device_node *imx_drm_of_get_next_endpoint(
-   const struct device_node *parent, struct device_node *prev)
-{
-   struct device_node *node = of_graph_get_next_endpoint(parent, prev);
-
-   of_node_put(prev);
-   return node;
-}
-
 int imx_drm_encoder_parse_of(struct drm_device *drm,
struct drm_encoder *encoder, struct device_node *np)
 {
@@ -456,7 +447,7 @@ int imx_drm_encoder_parse_of(struct drm_device *drm,
for (i = 0; ; i++) {
u32 mask;
 
-   ep = imx_drm_of_get_next_endpoint(np, ep);
+   ep = of_graph_get_next_endpoint(np, ep);
if (!ep)
break;
 
@@ -504,7 +495,7 @@ int imx_drm_encoder_get_mux_id(struct device_node *node,
return -EINVAL;
 
do {
-   ep = imx_drm_of_get_next_endpoint(node, ep);
+   ep = of_graph_get_next_endpoint(node, ep);
if (!ep)
break;
 
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_kms.c 
b/drivers/gpu/drm/rcar-du/rcar_du_kms.c
index 0c5ee61..480c4d9 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_kms.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_kms.c
@@ -206,7 +206,7 @@ static int rcar_du_encoders_init_one(struct rcar_du_device 
*rcdu,
enum rcar_du_encoder_type enc_type = RCAR_DU_ENCODER_NONE;
struct device_node *connector = NULL;
struct device_node *encoder = NULL;
-   struct device_node *prev = NULL;
+   struct device_node *ep_node = NULL;
struct device_node *entity_ep_node;
struct device_node *entity;
int ret;
@@ -225,11 +225,7 @@ static int rcar_du_encoders_init_one(struct rcar_du_device 
*rcdu,
entity_ep_node = of_parse_phandle(ep-local_node, remote-endpoint, 0);
 
while (1) {
-   struct device_node *ep_node;
-
-   ep_node = of_graph_get_next_endpoint(entity, prev);
-   of_node_put(prev);
-   prev = ep_node;
+   ep_node = of_graph_get_next_endpoint(entity, ep_node);
 
if (!ep_node)
break;
@@ -300,7 +296,7 @@ static int