From mboxrd@z Thu Jan 1 00:00:00 1970 From: Florian Vaussard Subject: [PATCH 4/7] iommu/omap: Allow enable/disable even without pdata Date: Tue, 17 Dec 2013 13:53:35 +0100 Message-ID: <1387284818-28739-5-git-send-email-florian.vaussard@epfl.ch> References: <1387284818-28739-1-git-send-email-florian.vaussard@epfl.ch> Return-path: Received: from smtp5.epfl.ch ([128.178.224.8]:36760 "EHLO smtp5.epfl.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753185Ab3LQMyO (ORCPT ); Tue, 17 Dec 2013 07:54:14 -0500 In-Reply-To: <1387284818-28739-1-git-send-email-florian.vaussard@epfl.ch> Sender: linux-omap-owner@vger.kernel.org List-Id: linux-omap@vger.kernel.org To: Joerg Roedel , Tony Lindgren , =?UTF-8?q?Beno=C3=AEt=20Cousson?= Cc: Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , Rob Landley , Grant Likely , Hiroshi Doyu , Florian Vaussard , iommu@lists.linux-foundation.org, devicetree@vger.kernel.org, linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org When booting with a devietree, no platform data is provided. Do not prematurely exit iommu_enable() and iommu_disable() in such a case. Signed-off-by: Florian Vaussard --- drivers/iommu/omap-iommu.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c index 51efcc4..0a9854d 100644 --- a/drivers/iommu/omap-iommu.c +++ b/drivers/iommu/omap-iommu.c @@ -149,13 +149,10 @@ static int iommu_enable(struct omap_iommu *obj) struct platform_device *pdev = to_platform_device(obj->dev); struct iommu_platform_data *pdata = pdev->dev.platform_data; - if (!pdata) - return -EINVAL; - if (!arch_iommu) return -ENODEV; - if (pdata->deassert_reset) { + if (pdata && pdata->deassert_reset) { err = pdata->deassert_reset(pdev, pdata->reset_name); if (err) { dev_err(obj->dev, "deassert_reset failed: %d\n", err); @@ -175,14 +172,11 @@ static void iommu_disable(struct omap_iommu *obj) struct platform_device *pdev = to_platform_device(obj->dev); struct iommu_platform_data *pdata = pdev->dev.platform_data; - if (!pdata) - return; - arch_iommu->disable(obj); pm_runtime_put_sync(obj->dev); - if (pdata->assert_reset) + if (pdata && pdata->assert_reset) pdata->assert_reset(pdev, pdata->reset_name); } -- 1.8.1.2