Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933976AbcCPQmP (ORCPT ); Wed, 16 Mar 2016 12:42:15 -0400 Received: from 8bytes.org ([81.169.241.247]:40993 "EHLO theia.8bytes.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932126AbcCPQmL (ORCPT ); Wed, 16 Mar 2016 12:42:11 -0400 From: Joerg Roedel To: Rob Herring , grant.likely@linaro.org Cc: Will Deacon , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, jroedel@suse.de, Joerg Roedel Subject: [RFC PATCH 0/2] of: Implement iterator for phandles Date: Wed, 16 Mar 2016 17:42:05 +0100 Message-Id: <1458146527-1133-1-git-send-email-joro@8bytes.org> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1287 Lines: 45 Hi, here is an implementation of the iterator over phandles concept which Rob Herring suggested to me some time ago. My approach is a little bit different from what the diff showed back then, but it gets rid of the allocation and 'struct 'struct of_phandle_args' misuse. I also converted the arm-smmu driver to make use of the iterator. The resulting kernel boots on my AMD Seattle system and fixes the warning triggered there. There is still some work to to on this change, but it would be cool to get some early feedback on the code and the direction it takes. Here is also my todo-list for this before next submission: TODO: * Reorder members of 'struct of_phandle_iterator' and do some renaming and documentation of them. * Split up first patch to make it easier to review and bisect. * Re-add and update some comments which got lost during the conversion. Any feedback is appreciated. Thanks, Joerg Joerg Roedel (2): of: Implement iterator for phandles iommu/arm-smmu: Make use of phandle iterators in device-tree parsing drivers/iommu/arm-smmu.c | 27 ++++-- drivers/of/base.c | 219 +++++++++++++++++++++++++++-------------------- include/linux/of.h | 95 ++++++++++++++++++++ 3 files changed, 241 insertions(+), 100 deletions(-) -- 1.9.1