linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: tfiga@google.com (Tomasz Figa)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 2/5] iommu/mediatek: Add mt8173 IOMMU driver
Date: Fri, 27 Mar 2015 18:41:09 +0900	[thread overview]
Message-ID: <CAAFQd5DOzFmfXki8GwUC75VQFEWzxBUNUgOtSuRtV6tc27kD2A@mail.gmail.com> (raw)
In-Reply-To: <1426677749.22581.38.camel@mhfsdcap03>

Hi Yong Wu,

Sorry for long delay, I had to figure out some time to look at this again.

On Wed, Mar 18, 2015 at 8:22 PM, Yong Wu <yong.wu@mediatek.com> wrote:
>>
>> > +               imudev = piommu->dev;
>> > +
>> > +       spin_lock_irqsave(&priv->portlock, flags);
>>
>> What is protected by this spinlock?
>         We will write a register of the local arbiter while config port. If
> some modules are in the same local arbiter, it may be overwrite. so I
> add it here.
>>

OK. Maybe it could be called larb_lock then? It would be good to have
structures or code that should be running under this spinlock
annotated with proper comments. And purpose of the lock documented in
a comment as well (probably in a kerneldoc-style documentation of
priv).

>> > +static void mtk_iommu_detach_device(struct iommu_domain *domain,
>> > +                                   struct device *dev)
>> > +{
>>
>> No hardware (de)configuration or clean-up necessary?
> I will add it. Actually we design like this:If a device have attached to
> iommu domain, it won't detach from it.

Isn't proper clean-up required for module removal? Some drivers might
be required to be loadable modules, which should be unloadable.

>>
>> > +
>> > +       piommu->protect_va = devm_kmalloc(piommu->dev, MTK_PROTECT_PA_ALIGN*2,
>>
>> style: Operators like * should have space on both sides.
>>
>> > +                                         GFP_KERNEL);
>>
>> Shouldn't dma_alloc_coherent() be used for this?
>      We don't care the data in it. I think they are the same. Could you
> help tell me why dma_alloc_coherent may be better.

Can you guarantee that at the time you allocate the memory using
devm_kmalloc() the memory is not dirty (i.e. some write back data are
stored in CPU cache) and is not going to be written back in some time,
overwriting data put there by IOMMU hardware?

>> > +
>> > +       iommu_set_fault_handler(domain, mtk_iommu_fault_handler, piommu);
>>
>> I don't see any other drivers doing this. Isn't this for upper layers,
>> so that they can set their own generic fault handlers?
>      I think that this function is related with the iommu domain, we
> have only one multimedia iommu domain. so I add it after the iommu
> domain are created.

No, this function is for drivers of IOMMU clients (i.e. master IP
blocks) which want to subscribe to page fault to do things like paging
on demand and so on. It shouldn't be called by IOMMU driver. Please
see other IOMMU drivers, for example rockchip-iommmu.c.

Best regards,
Tomasz

  parent reply	other threads:[~2015-03-27  9:41 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-06 10:48 [RFC PATCH 0/5] MT8173 IOMMU support yong.wu at mediatek.com
2015-03-06 10:48 ` [PATCH 1/5] soc: mediatek: Add SMI driver yong.wu at mediatek.com
2015-03-06 11:30   ` Paul Bolle
2015-03-09 11:57     ` Yong Wu
2015-03-09 17:59       ` Paul Bolle
2015-03-09 21:54         ` Arnd Bergmann
2015-03-10  6:17         ` Yingjoe Chen
2015-03-09  3:26   ` Yingjoe Chen
2015-03-09 21:56     ` Arnd Bergmann
2015-03-10  6:27       ` Yingjoe Chen
2015-03-10  9:05         ` Arnd Bergmann
2015-03-10  9:24       ` Lucas Stach
2015-03-09 11:03   ` Sascha Hauer
2015-03-06 10:48 ` [PATCH 2/5] iommu/mediatek: Add mt8173 IOMMU driver yong.wu at mediatek.com
2015-03-06 10:58   ` Will Deacon
2015-03-09 12:11     ` Yong Wu
2015-03-17 15:14       ` Will Deacon
2015-03-06 17:15   ` Mitchel Humpherys
2015-03-09 12:16     ` Yong Wu
2015-03-09 16:57       ` Mitchel Humpherys
2015-03-08  4:12   ` Tomasz Figa
2015-03-12 14:16     ` Yong Wu
2015-03-09  8:24   ` Daniel Kurtz
2015-03-09 11:11   ` Tomasz Figa
2015-03-09 14:46     ` Yingjoe Chen
2015-03-09 17:00       ` Tomasz Figa
2015-03-10  3:41         ` Yingjoe Chen
2015-03-10  4:06           ` Tomasz Figa
2015-03-11 10:53   ` Tomasz Figa
2015-03-18 11:22     ` Yong Wu
2015-03-20 19:14       ` Robin Murphy
2015-04-14  6:50         ` Yong Wu
2015-03-27  9:41       ` Tomasz Figa [this message]
2015-04-14  6:31         ` Yong Wu
2015-04-15  2:20           ` Tomasz Figa
2015-04-15  7:06             ` Yong Wu
2015-04-15  7:41               ` Tomasz Figa
2015-04-29  6:23         ` Yong Wu
2015-03-06 10:48 ` [PATCH 3/5] dt-bindings: mediatek: Add smi dts binding yong.wu at mediatek.com
2015-03-06 11:13   ` Mark Rutland
2015-03-09 12:55     ` Yong Wu
2015-04-14  9:07     ` Yong Wu
2015-04-14 10:06       ` Mark Rutland
2015-04-14 13:49         ` Yong Wu
2015-04-14 13:55           ` Yong Wu
2015-04-14 13:56           ` Mark Rutland
2015-03-06 14:48   ` Sergei Shtylyov
2015-03-09 12:32     ` Yong Wu
2015-03-06 10:48 ` [PATCH 4/5] dt-bindings: iommu: Add binding for mediatek IOMMU yong.wu at mediatek.com
2015-03-06 11:21   ` Mark Rutland
2015-03-09 11:30     ` Yong Wu
2015-03-06 10:48 ` [PATCH 5/5] dts: mt8173: Add iommu/smi nodes for mt8173 yong.wu at mediatek.com
2015-03-07 15:20   ` Daniel Kurtz
2015-03-09 12:18     ` Yong Wu

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=CAAFQd5DOzFmfXki8GwUC75VQFEWzxBUNUgOtSuRtV6tc27kD2A@mail.gmail.com \
    --to=tfiga@google.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).