Using the for_each_... macro should make the code bit shorter and easier to read. Signed-off-by: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> --- drivers/staging/imx-drm/imx-drm-core.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/staging/imx-drm/imx-drm-core.c b/drivers/staging/imx-drm/imx-drm-core.c index 9b5222c..460d785 100644 --- a/drivers/staging/imx-drm/imx-drm-core.c +++ b/drivers/staging/imx-drm/imx-drm-core.c @@ -438,17 +438,13 @@ int imx_drm_encoder_parse_of(struct drm_device *drm, struct drm_encoder *encoder, struct device_node *np) { struct imx_drm_device *imxdrm = drm->dev_private; - struct device_node *ep = NULL; + struct device_node *ep; uint32_t crtc_mask = 0; - int i; + int i = 0; - for (i = 0; ; i++) { + for_each_endpoint_of_node(np, ep) { u32 mask; - ep = of_graph_get_next_endpoint(np, ep); - if (!ep) - break; - mask = imx_drm_find_crtc_mask(imxdrm, ep); /* @@ -457,14 +453,15 @@ int imx_drm_encoder_parse_of(struct drm_device *drm, * not been registered yet. Defer probing, and hope that * the required CRTC is added later. */ - if (mask == 0) + if (mask == 0) { + of_node_put(ep); return -EPROBE_DEFER; + } crtc_mask |= mask; + i++; } - if (ep) - of_node_put(ep); if (i == 0) return -ENOENT; -- 2.1.0 -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html