From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Ohad Ben-Cohen <ohad@wizery.com>
Cc: Joerg Roedel <Joerg.Roedel@amd.com>,
linux-omap@vger.kernel.org, Hiroshi Doyu <hdoyu@nvidia.com>,
iommu@lists.linux-foundation.org,
linux-arm-kernel@lists.infradead.org,
Tony Lindgren <tony@atomide.com>
Subject: Re: [PATCH] ARM: OMAP: make iommu subsys_initcall to fix builtin omap3isp
Date: Sun, 26 Feb 2012 23:47:56 +0100 [thread overview]
Message-ID: <35010303.ArkW8BdIu6@avalon> (raw)
In-Reply-To: <CAK=WgbYkVALqrVMVv1ma3WzN5dYriM8X0MfwH4knwWwojB6hjg@mail.gmail.com>
Hi Ohad,
On Sunday 26 February 2012 20:30:17 Ohad Ben-Cohen wrote:
> On Sun, Feb 26, 2012 at 7:34 PM, Laurent Pinchart wrote:
> > On Sunday 26 February 2012 12:14:14 Ohad Ben-Cohen wrote:
> >> omap3isp depends on omap's iommu and will fail to probe if
> >> initialized before it (which always happen if they are builtin).
> >>
> >> Make omap's iommu subsys_initcall as an interim solution until
> >> the probe deferral mechanism is merged.
> >
> > How will that fix the problem ?
>
> Sorry, I'm not entirely sure I understand the question: are you asking
> about this patch or about the probe deferral thingy ?
I'm asking about the probe deferral mechanism. The omap3-isp driver will still
call iommu_attach_device() in its probe function. What will happen then ? Will
it return an error ? On what basis will it do so ?
> > I'm fine with this patch, as it fixes the problem as well, although I
> > still believe modifying the link order would be a better fix in this case.
>
> I'm personally not a huge fan of implicit link order dependencies, as
> someone may change the order in the future (for whatever benign
> reason) without even realizing he's breaking drivers.
That's what the comment in the Makefile is for ;-) I don't think it's a
perfect solution either, but it avoids playing with the various initcalls. The
OMAP3 IOMMU isn't a subsystem, subsys_initcall() looks a bit like an API abuse
to me. But as I mentioned in my previous mail, I'm fine with the patch if you
think it's a better solution.
> >> +/* must be ready before omap3isp is probed */
> >
> > The problem is not limited to the omap3isp driver, the DSP driver could be
> > affected as well.
>
> If you refer to tidspbridge, then I'm not sure it has the same issue:
> IIUC it doesn't enable the iommu hw on probe; only in response to an
> ioctl command (btw, tidspbridge doesn't even use this omap iommu
> driver - it manipulates the iommu registers directly. iicks.)
Looking at the tidspbridge driver, it seems to handle its IOMMU itself. That's
an item for someone's to-do list :-)
Are drivers supposed to call iommu_attach_device() in their probe() function
or later on ? The API doesn't seem to be documented.
> The omap4 solutions (remoteproc et al.) will only enable the iommu
> after userspace is alive, so no risk there as well.
--
Regards,
Laurent Pinchart
WARNING: multiple messages have this Message-ID (diff)
From: laurent.pinchart@ideasonboard.com (Laurent Pinchart)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: OMAP: make iommu subsys_initcall to fix builtin omap3isp
Date: Sun, 26 Feb 2012 23:47:56 +0100 [thread overview]
Message-ID: <35010303.ArkW8BdIu6@avalon> (raw)
In-Reply-To: <CAK=WgbYkVALqrVMVv1ma3WzN5dYriM8X0MfwH4knwWwojB6hjg@mail.gmail.com>
Hi Ohad,
On Sunday 26 February 2012 20:30:17 Ohad Ben-Cohen wrote:
> On Sun, Feb 26, 2012 at 7:34 PM, Laurent Pinchart wrote:
> > On Sunday 26 February 2012 12:14:14 Ohad Ben-Cohen wrote:
> >> omap3isp depends on omap's iommu and will fail to probe if
> >> initialized before it (which always happen if they are builtin).
> >>
> >> Make omap's iommu subsys_initcall as an interim solution until
> >> the probe deferral mechanism is merged.
> >
> > How will that fix the problem ?
>
> Sorry, I'm not entirely sure I understand the question: are you asking
> about this patch or about the probe deferral thingy ?
I'm asking about the probe deferral mechanism. The omap3-isp driver will still
call iommu_attach_device() in its probe function. What will happen then ? Will
it return an error ? On what basis will it do so ?
> > I'm fine with this patch, as it fixes the problem as well, although I
> > still believe modifying the link order would be a better fix in this case.
>
> I'm personally not a huge fan of implicit link order dependencies, as
> someone may change the order in the future (for whatever benign
> reason) without even realizing he's breaking drivers.
That's what the comment in the Makefile is for ;-) I don't think it's a
perfect solution either, but it avoids playing with the various initcalls. The
OMAP3 IOMMU isn't a subsystem, subsys_initcall() looks a bit like an API abuse
to me. But as I mentioned in my previous mail, I'm fine with the patch if you
think it's a better solution.
> >> +/* must be ready before omap3isp is probed */
> >
> > The problem is not limited to the omap3isp driver, the DSP driver could be
> > affected as well.
>
> If you refer to tidspbridge, then I'm not sure it has the same issue:
> IIUC it doesn't enable the iommu hw on probe; only in response to an
> ioctl command (btw, tidspbridge doesn't even use this omap iommu
> driver - it manipulates the iommu registers directly. iicks.)
Looking at the tidspbridge driver, it seems to handle its IOMMU itself. That's
an item for someone's to-do list :-)
Are drivers supposed to call iommu_attach_device() in their probe() function
or later on ? The API doesn't seem to be documented.
> The omap4 solutions (remoteproc et al.) will only enable the iommu
> after userspace is alive, so no risk there as well.
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2012-02-26 22:47 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-26 10:14 [PATCH] ARM: OMAP: make iommu subsys_initcall to fix builtin omap3isp Ohad Ben-Cohen
2012-02-26 10:14 ` Ohad Ben-Cohen
2012-02-26 17:34 ` Laurent Pinchart
2012-02-26 17:34 ` Laurent Pinchart
2012-02-26 18:30 ` Ohad Ben-Cohen
2012-02-26 18:30 ` Ohad Ben-Cohen
2012-02-26 22:47 ` Laurent Pinchart [this message]
2012-02-26 22:47 ` Laurent Pinchart
2012-02-27 7:00 ` Ohad Ben-Cohen
2012-02-27 7:00 ` Ohad Ben-Cohen
2012-02-27 12:02 ` Joerg Roedel
2012-02-27 12:02 ` Joerg Roedel
2012-03-01 16:37 ` Laurent Pinchart
2012-03-01 16:37 ` Laurent Pinchart
2012-03-01 17:12 ` Ohad Ben-Cohen
2012-03-01 17:12 ` Ohad Ben-Cohen
[not found] ` <1330251254-14693-1-git-send-email-ohad-Ix1uc/W3ht7QT0dZR+AlfA@public.gmane.org>
2012-02-27 13:23 ` Joerg Roedel
2012-02-27 13:23 ` Joerg Roedel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=35010303.ArkW8BdIu6@avalon \
--to=laurent.pinchart@ideasonboard.com \
--cc=Joerg.Roedel@amd.com \
--cc=hdoyu@nvidia.com \
--cc=iommu@lists.linux-foundation.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-omap@vger.kernel.org \
--cc=ohad@wizery.com \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.