From: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
To: Yong Wu <yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>,
Thierry Reding <treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>,
Mark Rutland <Mark.Rutland-5wv7dgnIgG8@public.gmane.org>,
Matthias Brugger
<matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: "k.zhang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org"
<k.zhang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
"devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
"pebolle-IWqWACnzNjzz+pZb47iToQ@public.gmane.org"
<pebolle-IWqWACnzNjzz+pZb47iToQ@public.gmane.org>,
"frederic.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org"
<frederic.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
"arnd-r2nGTMty4D4@public.gmane.org"
<arnd-r2nGTMty4D4@public.gmane.org>,
"srv_heupstream-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org"
<srv_heupstream-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
Catalin Marinas <Catalin.Marinas-5wv7dgnIgG8@public.gmane.org>,
Will Deacon <Will.Deacon-5wv7dgnIgG8@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Tomasz Figa <tfiga-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
"iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org"
<iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
Daniel Kurtz <djkurtz-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>,
Sasha Hauer <kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org>,
"linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
"youhua.li-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org"
<youhua.li-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>,
Lucas Stach <l.stach@p>
Subject: Re: [PATCH v4 5/6] iommu/mediatek: Add mt8173 IOMMU driver
Date: Fri, 11 Sep 2015 16:33:36 +0100 [thread overview]
Message-ID: <55F2F450.5090809@arm.com> (raw)
In-Reply-To: <1438597279-2937-6-git-send-email-yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
On 03/08/15 11:21, Yong Wu wrote:
> This patch adds support for mediatek m4u (MultiMedia Memory Management
> Unit).
>
> Signed-off-by: Yong Wu <yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
> ---
[...]
> +/*
> + * There is only one iommu domain called the m4u domain that
> + * all Multimedia modules share.
> + */
> +static struct mtk_iommu_domain *m4udom;
It's a shame this can't be part of the m4u device's mtk_iommu_data, but
since the way iommu_domain_alloc works makes that impossible, I think we
have little choice but to use the global and hope your guys never build
a system with two of these things in ;)
[...]
> +static struct iommu_domain *mtk_iommu_domain_alloc(unsigned type)
> +{
> + struct mtk_iommu_domain *priv;
> +
> + if (type != IOMMU_DOMAIN_UNMANAGED && type != IOMMU_DOMAIN_DMA)
> + return NULL;
> +
> + if (m4udom)/* The m4u domain exist. */
> + return &m4udom->domain;
> +
> + priv = kzalloc(sizeof(*priv), GFP_KERNEL);
> + if (!priv)
> + return NULL;
> +
> + priv->domain.geometry.aperture_start = 0;
> + priv->domain.geometry.aperture_end = DMA_BIT_MASK(32);
> + priv->domain.geometry.force_aperture = true;
My intention is that in the IOMMU_DOMAIN_DMA case you'd call
iommu_get_dma_cookie(&priv->domain) here as well, that way I can get rid
of some of the dodgy workarounds in arch_setup_dma_ops which try to
cover all possible cases (and which I'm now not 100% confident in). I'm
just about to start trying to fix that up (expect a repost of my series
in a week or two once -rc1 has landed).
> +
> + m4udom = priv;
> +
> + return &priv->domain;
> +}
[...]
> +static int mtk_iommu_add_device(struct device *dev)
> +{
> + struct iommu_group *group;
> + int ret;
> +
> + if (!dev->archdata.iommu) /* Not a iommu client device */
> + return -ENODEV;
> +
> + group = iommu_group_get(dev);
> + if (!group) {
> + group = iommu_group_alloc();
> + if (IS_ERR(group)) {
> + dev_err(dev, "Failed to allocate IOMMU group\n");
> + return PTR_ERR(group);
> + }
> + }
> +
> + ret = iommu_group_add_device(group, dev);
> + if (ret) {
> + dev_err(dev, "Failed to add IOMMU group\n");
> + goto err_group_put;
> + }
I know the rest of the code means that you can't hit it in practice, but
if you ever did have two client devices in the same group then the
iommu_group_get() could legitimately succeed for the second device, then
you'd blow up creating a duplicate sysfs entry by adding the device to
its own group again. Probably not what you want.
> +
> + ret = iommu_attach_group(&m4udom->domain, group);
> + if (ret)
> + dev_err(dev, "Failed to attach IOMMU group\n");
Similarly here, if two devices did share a group then the group could
legitimately already be attached to a domain here (by the first device),
so attaching it again would be wrong. I think it would be nicer to check
with iommu_get_domain_for_dev() first to see if you need to do anything
at all (a valid domain from that implies a valid group).
> +
> +err_group_put:
> + iommu_group_put(group);
> + return ret;
> +}
[...]
> +static int mtk_iommu_probe(struct platform_device *pdev)
> +{
> + struct mtk_iommu_data *data;
> + struct device *dev = &pdev->dev;
> + void __iomem *protect;
> + int ret;
> +
> + data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
> + if (!data)
> + return -ENOMEM;
> +
> + /* Protect memory. HW will access here while translation fault.*/
> + protect = devm_kzalloc(dev, MTK_PROTECT_PA_ALIGN * 2, GFP_KERNEL);
> + if (!protect)
> + return -ENOMEM;
> + data->protect_base = virt_to_phys(protect);
> +
> + ret = mtk_iommu_parse_dt(pdev, data);
> + if (ret)
> + return ret;
> +
> + if (!m4udom)/* There is no iommu client */
> + return 0;
I don't quite follow this: m4udom is apparently only created by someone
calling domain_alloc() - how can you guarantee that happens before this
driver is probed? - but if they then go and try to attach the device to
their new domain, it's going to end up in mtk_hw_init() poking the
hardware of the m4u device that can't have even probed yet.
I can only imagine it currently works by sheer chance due to the
horrible arch_setup_dma_ops delayed attachment workaround, so even if I
can't remove that completely when I look at it next week I'm liable to
change it in a way that breaks this badly ;)
Robin.
> +
> + data->dev = dev;
> + m4udom->data = data;
> + dev_set_drvdata(dev, m4udom);
> +
> + return 0;
> +}
WARNING: multiple messages have this Message-ID (diff)
From: robin.murphy@arm.com (Robin Murphy)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 5/6] iommu/mediatek: Add mt8173 IOMMU driver
Date: Fri, 11 Sep 2015 16:33:36 +0100 [thread overview]
Message-ID: <55F2F450.5090809@arm.com> (raw)
In-Reply-To: <1438597279-2937-6-git-send-email-yong.wu@mediatek.com>
On 03/08/15 11:21, Yong Wu wrote:
> This patch adds support for mediatek m4u (MultiMedia Memory Management
> Unit).
>
> Signed-off-by: Yong Wu <yong.wu@mediatek.com>
> ---
[...]
> +/*
> + * There is only one iommu domain called the m4u domain that
> + * all Multimedia modules share.
> + */
> +static struct mtk_iommu_domain *m4udom;
It's a shame this can't be part of the m4u device's mtk_iommu_data, but
since the way iommu_domain_alloc works makes that impossible, I think we
have little choice but to use the global and hope your guys never build
a system with two of these things in ;)
[...]
> +static struct iommu_domain *mtk_iommu_domain_alloc(unsigned type)
> +{
> + struct mtk_iommu_domain *priv;
> +
> + if (type != IOMMU_DOMAIN_UNMANAGED && type != IOMMU_DOMAIN_DMA)
> + return NULL;
> +
> + if (m4udom)/* The m4u domain exist. */
> + return &m4udom->domain;
> +
> + priv = kzalloc(sizeof(*priv), GFP_KERNEL);
> + if (!priv)
> + return NULL;
> +
> + priv->domain.geometry.aperture_start = 0;
> + priv->domain.geometry.aperture_end = DMA_BIT_MASK(32);
> + priv->domain.geometry.force_aperture = true;
My intention is that in the IOMMU_DOMAIN_DMA case you'd call
iommu_get_dma_cookie(&priv->domain) here as well, that way I can get rid
of some of the dodgy workarounds in arch_setup_dma_ops which try to
cover all possible cases (and which I'm now not 100% confident in). I'm
just about to start trying to fix that up (expect a repost of my series
in a week or two once -rc1 has landed).
> +
> + m4udom = priv;
> +
> + return &priv->domain;
> +}
[...]
> +static int mtk_iommu_add_device(struct device *dev)
> +{
> + struct iommu_group *group;
> + int ret;
> +
> + if (!dev->archdata.iommu) /* Not a iommu client device */
> + return -ENODEV;
> +
> + group = iommu_group_get(dev);
> + if (!group) {
> + group = iommu_group_alloc();
> + if (IS_ERR(group)) {
> + dev_err(dev, "Failed to allocate IOMMU group\n");
> + return PTR_ERR(group);
> + }
> + }
> +
> + ret = iommu_group_add_device(group, dev);
> + if (ret) {
> + dev_err(dev, "Failed to add IOMMU group\n");
> + goto err_group_put;
> + }
I know the rest of the code means that you can't hit it in practice, but
if you ever did have two client devices in the same group then the
iommu_group_get() could legitimately succeed for the second device, then
you'd blow up creating a duplicate sysfs entry by adding the device to
its own group again. Probably not what you want.
> +
> + ret = iommu_attach_group(&m4udom->domain, group);
> + if (ret)
> + dev_err(dev, "Failed to attach IOMMU group\n");
Similarly here, if two devices did share a group then the group could
legitimately already be attached to a domain here (by the first device),
so attaching it again would be wrong. I think it would be nicer to check
with iommu_get_domain_for_dev() first to see if you need to do anything
at all (a valid domain from that implies a valid group).
> +
> +err_group_put:
> + iommu_group_put(group);
> + return ret;
> +}
[...]
> +static int mtk_iommu_probe(struct platform_device *pdev)
> +{
> + struct mtk_iommu_data *data;
> + struct device *dev = &pdev->dev;
> + void __iomem *protect;
> + int ret;
> +
> + data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
> + if (!data)
> + return -ENOMEM;
> +
> + /* Protect memory. HW will access here while translation fault.*/
> + protect = devm_kzalloc(dev, MTK_PROTECT_PA_ALIGN * 2, GFP_KERNEL);
> + if (!protect)
> + return -ENOMEM;
> + data->protect_base = virt_to_phys(protect);
> +
> + ret = mtk_iommu_parse_dt(pdev, data);
> + if (ret)
> + return ret;
> +
> + if (!m4udom)/* There is no iommu client */
> + return 0;
I don't quite follow this: m4udom is apparently only created by someone
calling domain_alloc() - how can you guarantee that happens before this
driver is probed? - but if they then go and try to attach the device to
their new domain, it's going to end up in mtk_hw_init() poking the
hardware of the m4u device that can't have even probed yet.
I can only imagine it currently works by sheer chance due to the
horrible arch_setup_dma_ops delayed attachment workaround, so even if I
can't remove that completely when I look at it next week I'm liable to
change it in a way that breaks this badly ;)
Robin.
> +
> + data->dev = dev;
> + m4udom->data = data;
> + dev_set_drvdata(dev, m4udom);
> +
> + return 0;
> +}
WARNING: multiple messages have this Message-ID (diff)
From: Robin Murphy <robin.murphy@arm.com>
To: Yong Wu <yong.wu@mediatek.com>, Joerg Roedel <joro@8bytes.org>,
Thierry Reding <treding@nvidia.com>,
Mark Rutland <Mark.Rutland@arm.com>,
Matthias Brugger <matthias.bgg@gmail.com>
Cc: Will Deacon <Will.Deacon@arm.com>,
Daniel Kurtz <djkurtz@google.com>, Tomasz Figa <tfiga@google.com>,
Lucas Stach <l.stach@pengutronix.de>,
Rob Herring <robh+dt@kernel.org>,
Catalin Marinas <Catalin.Marinas@arm.com>,
"linux-mediatek@lists.infradead.org"
<linux-mediatek@lists.infradead.org>,
Sasha Hauer <kernel@pengutronix.de>,
"srv_heupstream@mediatek.com" <srv_heupstream@mediatek.com>,
"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"iommu@lists.linux-foundation.org"
<iommu@lists.linux-foundation.org>,
"pebolle@tiscali.nl" <pebolle@tiscali.nl>,
"arnd@arndb.de" <arnd@arndb.de>,
"mitchelh@codeaurora.org" <mitchelh@codeaurora.org>,
"youhua.li@mediatek.com" <youhua.li@mediatek.com>,
"k.zhang@mediatek.com" <k.zhang@mediatek.com>,
"frederic.chen@mediatek.com" <frederic.chen@mediatek.com>
Subject: Re: [PATCH v4 5/6] iommu/mediatek: Add mt8173 IOMMU driver
Date: Fri, 11 Sep 2015 16:33:36 +0100 [thread overview]
Message-ID: <55F2F450.5090809@arm.com> (raw)
In-Reply-To: <1438597279-2937-6-git-send-email-yong.wu@mediatek.com>
On 03/08/15 11:21, Yong Wu wrote:
> This patch adds support for mediatek m4u (MultiMedia Memory Management
> Unit).
>
> Signed-off-by: Yong Wu <yong.wu@mediatek.com>
> ---
[...]
> +/*
> + * There is only one iommu domain called the m4u domain that
> + * all Multimedia modules share.
> + */
> +static struct mtk_iommu_domain *m4udom;
It's a shame this can't be part of the m4u device's mtk_iommu_data, but
since the way iommu_domain_alloc works makes that impossible, I think we
have little choice but to use the global and hope your guys never build
a system with two of these things in ;)
[...]
> +static struct iommu_domain *mtk_iommu_domain_alloc(unsigned type)
> +{
> + struct mtk_iommu_domain *priv;
> +
> + if (type != IOMMU_DOMAIN_UNMANAGED && type != IOMMU_DOMAIN_DMA)
> + return NULL;
> +
> + if (m4udom)/* The m4u domain exist. */
> + return &m4udom->domain;
> +
> + priv = kzalloc(sizeof(*priv), GFP_KERNEL);
> + if (!priv)
> + return NULL;
> +
> + priv->domain.geometry.aperture_start = 0;
> + priv->domain.geometry.aperture_end = DMA_BIT_MASK(32);
> + priv->domain.geometry.force_aperture = true;
My intention is that in the IOMMU_DOMAIN_DMA case you'd call
iommu_get_dma_cookie(&priv->domain) here as well, that way I can get rid
of some of the dodgy workarounds in arch_setup_dma_ops which try to
cover all possible cases (and which I'm now not 100% confident in). I'm
just about to start trying to fix that up (expect a repost of my series
in a week or two once -rc1 has landed).
> +
> + m4udom = priv;
> +
> + return &priv->domain;
> +}
[...]
> +static int mtk_iommu_add_device(struct device *dev)
> +{
> + struct iommu_group *group;
> + int ret;
> +
> + if (!dev->archdata.iommu) /* Not a iommu client device */
> + return -ENODEV;
> +
> + group = iommu_group_get(dev);
> + if (!group) {
> + group = iommu_group_alloc();
> + if (IS_ERR(group)) {
> + dev_err(dev, "Failed to allocate IOMMU group\n");
> + return PTR_ERR(group);
> + }
> + }
> +
> + ret = iommu_group_add_device(group, dev);
> + if (ret) {
> + dev_err(dev, "Failed to add IOMMU group\n");
> + goto err_group_put;
> + }
I know the rest of the code means that you can't hit it in practice, but
if you ever did have two client devices in the same group then the
iommu_group_get() could legitimately succeed for the second device, then
you'd blow up creating a duplicate sysfs entry by adding the device to
its own group again. Probably not what you want.
> +
> + ret = iommu_attach_group(&m4udom->domain, group);
> + if (ret)
> + dev_err(dev, "Failed to attach IOMMU group\n");
Similarly here, if two devices did share a group then the group could
legitimately already be attached to a domain here (by the first device),
so attaching it again would be wrong. I think it would be nicer to check
with iommu_get_domain_for_dev() first to see if you need to do anything
at all (a valid domain from that implies a valid group).
> +
> +err_group_put:
> + iommu_group_put(group);
> + return ret;
> +}
[...]
> +static int mtk_iommu_probe(struct platform_device *pdev)
> +{
> + struct mtk_iommu_data *data;
> + struct device *dev = &pdev->dev;
> + void __iomem *protect;
> + int ret;
> +
> + data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
> + if (!data)
> + return -ENOMEM;
> +
> + /* Protect memory. HW will access here while translation fault.*/
> + protect = devm_kzalloc(dev, MTK_PROTECT_PA_ALIGN * 2, GFP_KERNEL);
> + if (!protect)
> + return -ENOMEM;
> + data->protect_base = virt_to_phys(protect);
> +
> + ret = mtk_iommu_parse_dt(pdev, data);
> + if (ret)
> + return ret;
> +
> + if (!m4udom)/* There is no iommu client */
> + return 0;
I don't quite follow this: m4udom is apparently only created by someone
calling domain_alloc() - how can you guarantee that happens before this
driver is probed? - but if they then go and try to attach the device to
their new domain, it's going to end up in mtk_hw_init() poking the
hardware of the m4u device that can't have even probed yet.
I can only imagine it currently works by sheer chance due to the
horrible arch_setup_dma_ops delayed attachment workaround, so even if I
can't remove that completely when I look at it next week I'm liable to
change it in a way that breaks this badly ;)
Robin.
> +
> + data->dev = dev;
> + m4udom->data = data;
> + dev_set_drvdata(dev, m4udom);
> +
> + return 0;
> +}
next prev parent reply other threads:[~2015-09-11 15:33 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-03 10:21 [PATCH v4 0/6] MT8173 IOMMU SUPPORT Yong Wu
2015-08-03 10:21 ` Yong Wu
2015-08-03 10:21 ` Yong Wu
[not found] ` <1438597279-2937-1-git-send-email-yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2015-08-03 10:21 ` [PATCH v4 1/6] dt-bindings: iommu: Add binding for mediatek IOMMU Yong Wu
2015-08-03 10:21 ` Yong Wu
2015-08-03 10:21 ` Yong Wu
2015-08-03 10:21 ` [PATCH v4 2/6] dt-bindings: mediatek: Add smi dts binding Yong Wu
2015-08-03 10:21 ` Yong Wu
2015-08-03 10:21 ` Yong Wu
2015-08-03 10:21 ` [PATCH v4 3/6] iommu: add ARM short descriptor page table allocator Yong Wu
2015-08-03 10:21 ` Yong Wu
2015-08-03 10:21 ` Yong Wu
[not found] ` <1438597279-2937-4-git-send-email-yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2015-09-16 15:58 ` Will Deacon
2015-09-16 15:58 ` Will Deacon
2015-09-16 15:58 ` Will Deacon
[not found] ` <20150916155824.GM28771-5wv7dgnIgG8@public.gmane.org>
2015-09-17 14:54 ` Yong Wu
2015-09-17 14:54 ` Yong Wu
2015-09-17 14:54 ` Yong Wu
2015-09-22 14:12 ` Yong Wu
2015-09-22 14:12 ` Yong Wu
2015-09-22 14:12 ` Yong Wu
2015-10-09 15:57 ` Will Deacon
2015-10-09 15:57 ` Will Deacon
2015-10-09 15:57 ` Will Deacon
[not found] ` <20151009155750.GS26278-5wv7dgnIgG8@public.gmane.org>
2015-10-09 17:41 ` Robin Murphy
2015-10-09 17:41 ` Robin Murphy
2015-10-09 17:41 ` Robin Murphy
[not found] ` <5617FC5F.60505-5wv7dgnIgG8@public.gmane.org>
2015-10-09 18:19 ` Will Deacon
2015-10-09 18:19 ` Will Deacon
2015-10-09 18:19 ` Will Deacon
[not found] ` <20151009181929.GU26278-5wv7dgnIgG8@public.gmane.org>
2015-10-21 10:34 ` Yong Wu
2015-10-21 10:34 ` Yong Wu
2015-10-21 10:34 ` Yong Wu
2015-08-03 10:21 ` [PATCH v4 4/6] memory: mediatek: Add SMI driver Yong Wu
2015-08-03 10:21 ` Yong Wu
2015-08-03 10:21 ` Yong Wu
[not found] ` <1438597279-2937-5-git-send-email-yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2015-08-11 14:56 ` Joerg Roedel
2015-08-11 14:56 ` Joerg Roedel
2015-08-11 14:56 ` Joerg Roedel
2015-08-12 12:39 ` Yong Wu
2015-08-12 12:39 ` Yong Wu
2015-08-12 12:39 ` Yong Wu
2015-08-03 10:21 ` [PATCH v4 5/6] iommu/mediatek: Add mt8173 IOMMU driver Yong Wu
2015-08-03 10:21 ` Yong Wu
2015-08-03 10:21 ` Yong Wu
[not found] ` <1438597279-2937-6-git-send-email-yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
2015-08-11 15:39 ` Joerg Roedel
2015-08-11 15:39 ` Joerg Roedel
2015-08-11 15:39 ` Joerg Roedel
[not found] ` <20150811153947.GF14980-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-08-12 12:28 ` Yong Wu
2015-08-12 12:28 ` Yong Wu
2015-08-12 12:28 ` Yong Wu
2015-09-11 15:33 ` Robin Murphy [this message]
2015-09-11 15:33 ` Robin Murphy
2015-09-11 15:33 ` Robin Murphy
[not found] ` <55F2F450.5090809-5wv7dgnIgG8@public.gmane.org>
2015-09-15 5:53 ` Yong Wu
2015-09-15 5:53 ` Yong Wu
2015-09-15 5:53 ` Yong Wu
2015-08-03 10:21 ` [PATCH v4 6/6] dts: mt8173: Add iommu/smi nodes for mt8173 Yong Wu
2015-08-03 10:21 ` Yong Wu
2015-08-03 10:21 ` 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=55F2F450.5090809@arm.com \
--to=robin.murphy-5wv7dgnigg8@public.gmane.org \
--cc=Catalin.Marinas-5wv7dgnIgG8@public.gmane.org \
--cc=Mark.Rutland-5wv7dgnIgG8@public.gmane.org \
--cc=Will.Deacon-5wv7dgnIgG8@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=djkurtz-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=frederic.chen-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org \
--cc=k.zhang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
--cc=kernel-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org \
--cc=l.stach@p \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=matthias.bgg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=pebolle-IWqWACnzNjzz+pZb47iToQ@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
--cc=srv_heupstream-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
--cc=tfiga-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=treding-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org \
--cc=yong.wu-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org \
--cc=youhua.li-NuS5LvNUpcJWk0Htik3J/w@public.gmane.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 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.