From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCHv2 07/16] iommu/omap: allow enable/disable even without pdata Date: Tue, 25 Feb 2014 22:15:32 +0100 Message-ID: <5986613.CineS9pX88@avalon> References: <1392315347-32967-1-git-send-email-s-anna@ti.com> <1392315347-32967-8-git-send-email-s-anna@ti.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1392315347-32967-8-git-send-email-s-anna-l0cyMroinI0@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: Suman Anna Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Tony Lindgren , iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Florian Vaussard List-Id: devicetree@vger.kernel.org Hi Suman, Thank you for the patch. On Thursday 13 February 2014 12:15:38 Suman Anna wrote: > From: Florian Vaussard > > When booting with a devicetree, no platform data is provided. > Do not prematurely exit iommu_enable() and iommu_disable() in > such a case. > > Note: As OMAP do not yet has a proper reset controller driver, > IOMMUs requiring a reset signal should use pdata-quirks as a > transitional solution. > > Signed-off-by: Florian Vaussard This looks good to me, but you should move this patch before 04/16, otherwise you'll break bisection. Acked-by: Laurent Pinchart > --- > 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 f6afe8f..7672eb4 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); > } -- Regards, Laurent Pinchart