Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753618AbdFPKKY (ORCPT ); Fri, 16 Jun 2017 06:10:24 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:36182 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753504AbdFPKKV (ORCPT ); Fri, 16 Jun 2017 06:10:21 -0400 MIME-Version: 1.0 In-Reply-To: References: <149752254550.21887.15183665699230243235.sendpatchset@little-apple> <149752258917.21887.4347773581840409774.sendpatchset@little-apple> From: Magnus Damm Date: Fri, 16 Jun 2017 19:10:09 +0900 Message-ID: Subject: Re: [PATCH 04/04] iommu/ipmmu-vmsa: Replace local utlb code with fwspec ids To: Geert Uytterhoeven Cc: Joerg Roedel , Laurent Pinchart , Geert Uytterhoeven , Sricharan R , Will Deacon , "linux-kernel@vger.kernel.org" , Linux-Renesas , iommu@lists.linux-foundation.org, Simon Horman , Robin Murphy , Marek Szyprowski Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1182 Lines: 38 Hi Geert, On Fri, Jun 16, 2017 at 4:18 PM, Geert Uytterhoeven wrote: > Hi Magnus, > > On Thu, Jun 15, 2017 at 12:29 PM, Magnus Damm wrote: >> Now when both 32-bit and 64-bit code inside the driver is using >> fwspec it is possible to replace the utlb handling with fwspec ids >> that get populated from ->of_xlate(). > > Thanks for your patch! Thanks for the feedback! >> --- 0013/drivers/iommu/ipmmu-vmsa.c >> +++ work/drivers/iommu/ipmmu-vmsa.c 2017-06-15 18:32:27.580607110 +0900 > >> static int ipmmu_of_xlate(struct device *dev, >> struct of_phandle_args *spec) >> { >> - return ipmmu_init_platform_device(dev); >> + iommu_fwspec_add_ids(dev, spec->args, 1); > > Does it hurt if iommu_fwspec_add_ids() is called multiple times, as this is > done before the "Initialize once - xlate() will call multiple times" check? The function needs to be called several times to populate the ids, so that the "initialize once" check happens later is intentional and correct. Perhaps a bit unclear though... >> + >> + return ipmmu_init_platform_device(dev, spec); >> } Cheers, / magnus