Received: by 10.223.176.5 with SMTP id f5csp482788wra; Wed, 7 Feb 2018 02:33:34 -0800 (PST) X-Google-Smtp-Source: AH8x224QVN+hWJbrZAuVvsvXLyRZlCvXDSmc+AP86uCip9paMYH+oflmjEnhKQvLs7tSH2WTmhlC X-Received: by 10.98.71.146 with SMTP id p18mr5572230pfi.3.1517999614453; Wed, 07 Feb 2018 02:33:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517999614; cv=none; d=google.com; s=arc-20160816; b=s3xgGLSFPCsFLwVAlcV66PYFTR2BdvRwJVceFPIKm6n1ltXIOLW6IGusm4WpAEboUg ligDl/bh76inRVvEltQ6DHa/cOxTCtqaO64MP8zwXLN4EobcH7GYmw+NRbKj+by2Baw/ FvkvRPk5nUeLDp4sB5U9tQOr5BUlc1ydZEpe+dJG9Yx1TpCFOfp2MPlbS9W3WGz5g4em W5cRoAUX1wOinhovi3WiD1YAdwIoXq4NYVIenaoo/q34erZf68y9pQLVoamRFukHttWD P/Vs7hWWWHwRImMLMn2zT+PvZDsiXz33qa61SXcQP0BC22PailDMofG25gPuz1QsWtWj Pj9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dmarc-filter:dkim-signature:dkim-signature :arc-authentication-results; bh=GAYsFhRKtS+DGntjqcrp92XcwgwAeQopfzdTga6yJpY=; b=Oe3hkA4jdcZY6RAG6AO5UPB8lwuEMi4nUyCC4kfF+p7stVcdvMYNimh4dUgKrRMS7Y z0ZZ0xjVcgIHJVCPeeTsI+PQ61Ie97hgramrgYAe7Rbd+znmUVIVAM13xfck54ScfI5m MDDhd3woQ9K2+1JJ/fC6Khpo0ZU7RNEzePbJgPVEBEgEXGvPQaOABWERjEh1ABe1/0Au ksvD9+uaecHJbzVVHAo/FHakNVqa67C+y4oXabKcuETZFgSO1iMp4g/RXWI5V8qtYble AibEbxXjKdU8iEzS2ki1A3gg4OWiSldYt4/ghWmi+uqZMqiKxIF0qOxNuPWtOtu7iz49 H5YQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=kQwbTNNP; dkim=pass header.i=@codeaurora.org header.s=default header.b=HthXyIdz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c190si757465pga.810.2018.02.07.02.33.20; Wed, 07 Feb 2018 02:33:34 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=kQwbTNNP; dkim=pass header.i=@codeaurora.org header.s=default header.b=HthXyIdz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754002AbeBGKcZ (ORCPT + 99 others); Wed, 7 Feb 2018 05:32:25 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:41750 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753580AbeBGKcV (ORCPT ); Wed, 7 Feb 2018 05:32:21 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id E88BB60A06; Wed, 7 Feb 2018 10:32:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1517999540; bh=GRp3SpKPBbfuzl5eTjXNlGUChVA7Jo3ogNzlcb6gvbg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=kQwbTNNPKYvV7zNOCfxNRWGTy1agEUUCxXNtwwzrKC08LV1H+Qys9FIpBlS4rrWg/ yET/eL1DsQOGQ2YyO1DgVERH5bCAzfzKfl4pkfiehRMA4pSGQVbsYd1KBSh0hOAGvf 5iW5xWn1EFJU4MlQ8xtgwh/I7jsZFCGea5U+bzCs= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from blr-ubuntu-41.ap.qualcomm.com (blr-bdr-fw-01_globalnat_allzones-outside.qualcomm.com [103.229.18.19]) (using TLSv1.1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) (Authenticated sender: vivek.gautam@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 057B260790; Wed, 7 Feb 2018 10:32:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1517999539; bh=GRp3SpKPBbfuzl5eTjXNlGUChVA7Jo3ogNzlcb6gvbg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=HthXyIdzOSzvZ8eJmXswJ/MIocU4fWlY9xAS+tpawmPQVCECH27SkCelshLa5sCXE fnPtt4a8Zny8f9c5BGUb5eoxauFJAC9Jk0ONf8FHqqio0+mV8r9XK+20Xx8GqoLOa1 p5TW3QKr0lEPRrvsTuLfWHdsL4t48xFkF6b+jhc0= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 057B260790 Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=vivek.gautam@codeaurora.org From: Vivek Gautam To: joro@8bytes.org, robh+dt@kernel.org, mark.rutland@arm.com, rjw@rjwysocki.net, robin.murphy@arm.com, will.deacon@arm.com, robdclark@gmail.com, iommu@lists.linux-foundation.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org Cc: alex.williamson@redhat.com, gregkh@linuxfoundation.org, airlied@linux.ie, sboyd@codeaurora.org, sricharan@codeaurora.org, m.szyprowski@samsung.com, architt@codeaurora.org, linux-arm-msm@vger.kernel.org, vivek.gautam@codeaurora.org Subject: [PATCH v7 6/6] drm/msm: iommu: Replace runtime calls with runtime suppliers Date: Wed, 7 Feb 2018 16:01:22 +0530 Message-Id: <1517999482-17317-7-git-send-email-vivek.gautam@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1517999482-17317-1-git-send-email-vivek.gautam@codeaurora.org> References: <1517999482-17317-1-git-send-email-vivek.gautam@codeaurora.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org While handling the concerned iommu, there should not be a need to power control the drm devices from iommu interface. If these drm devices need to be powered around this time, the respective drivers should take care of this. Replace the pm_runtime_get/put_sync() with pm_runtime_get/put_suppliers() calls, to power-up the connected iommu through the device link interface. In case the device link is not setup these get/put_suppliers() calls will be a no-op, and the iommu driver should take care of powering on its devices accordingly. Signed-off-by: Vivek Gautam --- drivers/gpu/drm/msm/msm_iommu.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_iommu.c b/drivers/gpu/drm/msm/msm_iommu.c index b23d33622f37..1ab629bbee69 100644 --- a/drivers/gpu/drm/msm/msm_iommu.c +++ b/drivers/gpu/drm/msm/msm_iommu.c @@ -40,9 +40,9 @@ static int msm_iommu_attach(struct msm_mmu *mmu, const char * const *names, struct msm_iommu *iommu = to_msm_iommu(mmu); int ret; - pm_runtime_get_sync(mmu->dev); + pm_runtime_get_suppliers(mmu->dev); ret = iommu_attach_device(iommu->domain, mmu->dev); - pm_runtime_put_sync(mmu->dev); + pm_runtime_put_suppliers(mmu->dev); return ret; } @@ -52,9 +52,9 @@ static void msm_iommu_detach(struct msm_mmu *mmu, const char * const *names, { struct msm_iommu *iommu = to_msm_iommu(mmu); - pm_runtime_get_sync(mmu->dev); + pm_runtime_get_suppliers(mmu->dev); iommu_detach_device(iommu->domain, mmu->dev); - pm_runtime_put_sync(mmu->dev); + pm_runtime_put_suppliers(mmu->dev); } static int msm_iommu_map(struct msm_mmu *mmu, uint64_t iova, @@ -63,9 +63,9 @@ static int msm_iommu_map(struct msm_mmu *mmu, uint64_t iova, struct msm_iommu *iommu = to_msm_iommu(mmu); size_t ret; -// pm_runtime_get_sync(mmu->dev); + pm_runtime_get_suppliers(mmu->dev); ret = iommu_map_sg(iommu->domain, iova, sgt->sgl, sgt->nents, prot); -// pm_runtime_put_sync(mmu->dev); + pm_runtime_put_suppliers(mmu->dev); WARN_ON(ret < 0); return (ret == len) ? 0 : -EINVAL; @@ -76,9 +76,9 @@ static int msm_iommu_unmap(struct msm_mmu *mmu, uint64_t iova, { struct msm_iommu *iommu = to_msm_iommu(mmu); - pm_runtime_get_sync(mmu->dev); + pm_runtime_get_suppliers(mmu->dev); iommu_unmap(iommu->domain, iova, len); - pm_runtime_put_sync(mmu->dev); + pm_runtime_put_suppliers(mmu->dev); return 0; } -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation