From: Robin Murphy <robin.murphy-5wv7dgnIgG8@public.gmane.org>
To: Catalin Marinas <catalin.marinas-5wv7dgnIgG8@public.gmane.org>,
Murali Karicheri <m-karicheri2-l0cyMroinI0@public.gmane.org>
Cc: "devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>,
"linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Will Deacon <Will.Deacon-5wv7dgnIgG8@public.gmane.org>,
"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Bjorn Helgaas <bhelgaas-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>,
"grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org"
<grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>,
"linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org"
<linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>
Subject: Re: [PATCH v4 3/6] of: fix size when dma-range is not used
Date: Wed, 28 Jan 2015 15:55:57 +0000 [thread overview]
Message-ID: <54C9068D.8050701@arm.com> (raw)
In-Reply-To: <20150128110523.GC6646-M2fw3Uu6cmfZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
On 28/01/15 11:05, Catalin Marinas wrote:
> On Tue, Jan 27, 2015 at 06:55:15PM +0000, Murali Karicheri wrote:
>> On 01/27/2015 06:27 AM, Robin Murphy wrote:
>>> On 23/01/15 22:32, Murali Karicheri wrote:
>>>> Fix the dma-range size when the DT attribute is missing. i.e set size to
>>>> dev->coherent_dma_mask + 1 instead of dev->coherent_dma_mask. To detect
>>>> overflow when mask is set to max of u64, add a check, log error and
>>>> return.
>>>> Some platform use mask format for size in DTS. So add a work around to
>>>> catch this and fix.
>>>>
>>>> Cc: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
>>>> Cc: Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
>>>> Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
>>>> Cc: Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
>>>> Cc: Will Deacon <will.deacon-5wv7dgnIgG8@public.gmane.org>
>>>> Cc: Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>
>>>> Cc: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
>>>> Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit-5C7GfCeVMHo@public.gmane.org>
>>>>
>>>> Signed-off-by: Murali Karicheri <m-karicheri2-l0cyMroinI0@public.gmane.org>
>>>> ---
>>>> drivers/of/device.c | 14 +++++++++++++-
>>>> 1 file changed, 13 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/of/device.c b/drivers/of/device.c
>>>> index 2de320d..0a5ff54 100644
>>>> --- a/drivers/of/device.c
>>>> +++ b/drivers/of/device.c
>>>> @@ -105,12 +105,24 @@ void of_dma_configure(struct device *dev, struct
>>>> device_node *np)
>>>> ret = of_dma_get_range(np, &dma_addr, &paddr, &size);
>>>> if (ret < 0) {
>>>> dma_addr = offset = 0;
>>>> - size = dev->coherent_dma_mask;
>>>> + size = dev->coherent_dma_mask + 1;
>>>> } else {
>>>> offset = PFN_DOWN(paddr - dma_addr);
>>>> + /*
>>>> + * Add a work around to treat the size as mask + 1 in case
>>>> + * it is defined in DT as a mask.
>>>> + */
>>>> + if (size & 1)
>>>> + size = size + 1;
>>>> dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset);
>>>> }
>>>>
>>>> + /* if size is 0, we have an overflow of u64 */
>>>> + if (!size) {
>>>> + dev_err(dev, "invalid size\n");
>>>> + return;
>>>> + }
>>>> +
>>>
>>> This seems potentially fragile to dodgy DTs given that we might also be
>>> using size to make a mask later. Would it make sense to double-up a
>>> sanity check as mask-format detection? Something like:
>>>
>>> if is_power_of_2(size)
>>> // use size
>>> else if is_power_of_2(size + 1)
>>> // use size + 1
>>> else
>>> // cry
>>
>> How about having the logic like this?
>>
>> ret = of_dma_get_range(np, &dma_addr, &paddr, &size);
>> if (ret < 0) {
>> dma_addr = offset = 0;
>> size = dev->coherent_dma_mask + 1;
>> } else {
>> offset = PFN_DOWN(paddr - dma_addr);
>> dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset);
>> }
>>
>> if (is_power_of_2(size + 1))
>> size = size + 1;
>> else if (!is_power_of_2(size))
>> {
>> dev_err(dev, "invalid size\n");
>> return;
>> }
>
> In of_dma_configure(), we currently assume that the default coherent
> mask is 32-bit. In this thread:
>
> http://article.gmane.org/gmane.linux.kernel/1835096
>
> we talked about setting the coherent mask based on size automatically.
> I'm not sure about the size but I think we can assume is 32-bit mask + 1
> if it is not specified in the DT. Instead of just assuming a default
> mask, let's assume a default size and create the mask based on this
> (untested):
>
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index 5b33c6a21807..9ff8d1286b44 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -170,10 +170,10 @@ static void of_dma_configure(struct device *dev)
> struct iommu_ops *iommu;
>
> /*
> - * Set default dma-mask to 32 bit. Drivers are expected to setup
> - * the correct supported dma_mask.
> + * Set default size to cover the 32-bit. Drivers are expected to setup
> + * the correct size and dma_mask.
> */
> - dev->coherent_dma_mask = DMA_BIT_MASK(32);
> + size = 1ULL << 32;
>
> /*
> * Set it to coherent_dma_mask by default if the architecture
> @@ -185,13 +185,24 @@ static void of_dma_configure(struct device *dev)
> ret = of_dma_get_range(dev->of_node, &dma_addr, &paddr, &size);
> if (ret < 0) {
> dma_addr = offset = 0;
> - size = dev->coherent_dma_mask;
> } else {
> offset = PFN_DOWN(paddr - dma_addr);
> dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", dev->dma_pfn_offset);
> }
> dev->dma_pfn_offset = offset;
>
> + /*
> + * Workaround for DTs setting the size to a mask or 0.
> + */
> + if (is_power_of_2(size + 1))
> + size += 1;
In fact, since the ilog2 below ends up effectively rounding down, we
might as well do away with this check as well and just add 1
unconditionally. The only time it makes any difference is when we want
it to anyway!
I like this approach, it ends up looking a lot neater.
Robin.
> +
> + /*
> + * Coherent DMA masks larger than 32-bit must be explicitly set by the
> + * driver.
> + */
> + dev->coherent_dma_mask = min(DMA_BIT_MASK(32), DMA_BIT_MASK(ilog2(size)));
> +
> coherent = of_dma_is_coherent(dev->of_node);
> dev_dbg(dev, "device is%sdma coherent\n",
> coherent ? " " : " not ");
>
WARNING: multiple messages have this Message-ID (diff)
From: Robin Murphy <robin.murphy@arm.com>
To: Catalin Marinas <catalin.marinas@arm.com>,
Murali Karicheri <m-karicheri2@ti.com>
Cc: "devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
Russell King <linux@arm.linux.org.uk>,
Arnd Bergmann <arnd@arndb.de>,
"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
Joerg Roedel <joro@8bytes.org>, Will Deacon <Will.Deacon@arm.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"grant.likely@linaro.org" <grant.likely@linaro.org>,
"iommu@lists.linux-foundation.org"
<iommu@lists.linux-foundation.org>,
Rob Herring <robh+dt@kernel.org>,
"suravee.suthikulpanit@amd.com" <suravee.suthikulpanit@amd.com>,
Bjorn Helgaas <bhelgaas@google.com>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v4 3/6] of: fix size when dma-range is not used
Date: Wed, 28 Jan 2015 15:55:57 +0000 [thread overview]
Message-ID: <54C9068D.8050701@arm.com> (raw)
In-Reply-To: <20150128110523.GC6646@e104818-lin.cambridge.arm.com>
On 28/01/15 11:05, Catalin Marinas wrote:
> On Tue, Jan 27, 2015 at 06:55:15PM +0000, Murali Karicheri wrote:
>> On 01/27/2015 06:27 AM, Robin Murphy wrote:
>>> On 23/01/15 22:32, Murali Karicheri wrote:
>>>> Fix the dma-range size when the DT attribute is missing. i.e set size to
>>>> dev->coherent_dma_mask + 1 instead of dev->coherent_dma_mask. To detect
>>>> overflow when mask is set to max of u64, add a check, log error and
>>>> return.
>>>> Some platform use mask format for size in DTS. So add a work around to
>>>> catch this and fix.
>>>>
>>>> Cc: Joerg Roedel <joro@8bytes.org>
>>>> Cc: Grant Likely <grant.likely@linaro.org>
>>>> Cc: Rob Herring <robh+dt@kernel.org>
>>>> Cc: Bjorn Helgaas <bhelgaas@google.com>
>>>> Cc: Will Deacon <will.deacon@arm.com>
>>>> Cc: Russell King <linux@arm.linux.org.uk>
>>>> Cc: Arnd Bergmann <arnd@arndb.de>
>>>> Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
>>>>
>>>> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
>>>> ---
>>>> drivers/of/device.c | 14 +++++++++++++-
>>>> 1 file changed, 13 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/of/device.c b/drivers/of/device.c
>>>> index 2de320d..0a5ff54 100644
>>>> --- a/drivers/of/device.c
>>>> +++ b/drivers/of/device.c
>>>> @@ -105,12 +105,24 @@ void of_dma_configure(struct device *dev, struct
>>>> device_node *np)
>>>> ret = of_dma_get_range(np, &dma_addr, &paddr, &size);
>>>> if (ret < 0) {
>>>> dma_addr = offset = 0;
>>>> - size = dev->coherent_dma_mask;
>>>> + size = dev->coherent_dma_mask + 1;
>>>> } else {
>>>> offset = PFN_DOWN(paddr - dma_addr);
>>>> + /*
>>>> + * Add a work around to treat the size as mask + 1 in case
>>>> + * it is defined in DT as a mask.
>>>> + */
>>>> + if (size & 1)
>>>> + size = size + 1;
>>>> dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset);
>>>> }
>>>>
>>>> + /* if size is 0, we have an overflow of u64 */
>>>> + if (!size) {
>>>> + dev_err(dev, "invalid size\n");
>>>> + return;
>>>> + }
>>>> +
>>>
>>> This seems potentially fragile to dodgy DTs given that we might also be
>>> using size to make a mask later. Would it make sense to double-up a
>>> sanity check as mask-format detection? Something like:
>>>
>>> if is_power_of_2(size)
>>> // use size
>>> else if is_power_of_2(size + 1)
>>> // use size + 1
>>> else
>>> // cry
>>
>> How about having the logic like this?
>>
>> ret = of_dma_get_range(np, &dma_addr, &paddr, &size);
>> if (ret < 0) {
>> dma_addr = offset = 0;
>> size = dev->coherent_dma_mask + 1;
>> } else {
>> offset = PFN_DOWN(paddr - dma_addr);
>> dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset);
>> }
>>
>> if (is_power_of_2(size + 1))
>> size = size + 1;
>> else if (!is_power_of_2(size))
>> {
>> dev_err(dev, "invalid size\n");
>> return;
>> }
>
> In of_dma_configure(), we currently assume that the default coherent
> mask is 32-bit. In this thread:
>
> http://article.gmane.org/gmane.linux.kernel/1835096
>
> we talked about setting the coherent mask based on size automatically.
> I'm not sure about the size but I think we can assume is 32-bit mask + 1
> if it is not specified in the DT. Instead of just assuming a default
> mask, let's assume a default size and create the mask based on this
> (untested):
>
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index 5b33c6a21807..9ff8d1286b44 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -170,10 +170,10 @@ static void of_dma_configure(struct device *dev)
> struct iommu_ops *iommu;
>
> /*
> - * Set default dma-mask to 32 bit. Drivers are expected to setup
> - * the correct supported dma_mask.
> + * Set default size to cover the 32-bit. Drivers are expected to setup
> + * the correct size and dma_mask.
> */
> - dev->coherent_dma_mask = DMA_BIT_MASK(32);
> + size = 1ULL << 32;
>
> /*
> * Set it to coherent_dma_mask by default if the architecture
> @@ -185,13 +185,24 @@ static void of_dma_configure(struct device *dev)
> ret = of_dma_get_range(dev->of_node, &dma_addr, &paddr, &size);
> if (ret < 0) {
> dma_addr = offset = 0;
> - size = dev->coherent_dma_mask;
> } else {
> offset = PFN_DOWN(paddr - dma_addr);
> dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", dev->dma_pfn_offset);
> }
> dev->dma_pfn_offset = offset;
>
> + /*
> + * Workaround for DTs setting the size to a mask or 0.
> + */
> + if (is_power_of_2(size + 1))
> + size += 1;
In fact, since the ilog2 below ends up effectively rounding down, we
might as well do away with this check as well and just add 1
unconditionally. The only time it makes any difference is when we want
it to anyway!
I like this approach, it ends up looking a lot neater.
Robin.
> +
> + /*
> + * Coherent DMA masks larger than 32-bit must be explicitly set by the
> + * driver.
> + */
> + dev->coherent_dma_mask = min(DMA_BIT_MASK(32), DMA_BIT_MASK(ilog2(size)));
> +
> coherent = of_dma_is_coherent(dev->of_node);
> dev_dbg(dev, "device is%sdma coherent\n",
> coherent ? " " : " not ");
>
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 3/6] of: fix size when dma-range is not used
Date: Wed, 28 Jan 2015 15:55:57 +0000 [thread overview]
Message-ID: <54C9068D.8050701@arm.com> (raw)
In-Reply-To: <20150128110523.GC6646@e104818-lin.cambridge.arm.com>
On 28/01/15 11:05, Catalin Marinas wrote:
> On Tue, Jan 27, 2015 at 06:55:15PM +0000, Murali Karicheri wrote:
>> On 01/27/2015 06:27 AM, Robin Murphy wrote:
>>> On 23/01/15 22:32, Murali Karicheri wrote:
>>>> Fix the dma-range size when the DT attribute is missing. i.e set size to
>>>> dev->coherent_dma_mask + 1 instead of dev->coherent_dma_mask. To detect
>>>> overflow when mask is set to max of u64, add a check, log error and
>>>> return.
>>>> Some platform use mask format for size in DTS. So add a work around to
>>>> catch this and fix.
>>>>
>>>> Cc: Joerg Roedel <joro@8bytes.org>
>>>> Cc: Grant Likely <grant.likely@linaro.org>
>>>> Cc: Rob Herring <robh+dt@kernel.org>
>>>> Cc: Bjorn Helgaas <bhelgaas@google.com>
>>>> Cc: Will Deacon <will.deacon@arm.com>
>>>> Cc: Russell King <linux@arm.linux.org.uk>
>>>> Cc: Arnd Bergmann <arnd@arndb.de>
>>>> Cc: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
>>>>
>>>> Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
>>>> ---
>>>> drivers/of/device.c | 14 +++++++++++++-
>>>> 1 file changed, 13 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/of/device.c b/drivers/of/device.c
>>>> index 2de320d..0a5ff54 100644
>>>> --- a/drivers/of/device.c
>>>> +++ b/drivers/of/device.c
>>>> @@ -105,12 +105,24 @@ void of_dma_configure(struct device *dev, struct
>>>> device_node *np)
>>>> ret = of_dma_get_range(np, &dma_addr, &paddr, &size);
>>>> if (ret < 0) {
>>>> dma_addr = offset = 0;
>>>> - size = dev->coherent_dma_mask;
>>>> + size = dev->coherent_dma_mask + 1;
>>>> } else {
>>>> offset = PFN_DOWN(paddr - dma_addr);
>>>> + /*
>>>> + * Add a work around to treat the size as mask + 1 in case
>>>> + * it is defined in DT as a mask.
>>>> + */
>>>> + if (size & 1)
>>>> + size = size + 1;
>>>> dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset);
>>>> }
>>>>
>>>> + /* if size is 0, we have an overflow of u64 */
>>>> + if (!size) {
>>>> + dev_err(dev, "invalid size\n");
>>>> + return;
>>>> + }
>>>> +
>>>
>>> This seems potentially fragile to dodgy DTs given that we might also be
>>> using size to make a mask later. Would it make sense to double-up a
>>> sanity check as mask-format detection? Something like:
>>>
>>> if is_power_of_2(size)
>>> // use size
>>> else if is_power_of_2(size + 1)
>>> // use size + 1
>>> else
>>> // cry
>>
>> How about having the logic like this?
>>
>> ret = of_dma_get_range(np, &dma_addr, &paddr, &size);
>> if (ret < 0) {
>> dma_addr = offset = 0;
>> size = dev->coherent_dma_mask + 1;
>> } else {
>> offset = PFN_DOWN(paddr - dma_addr);
>> dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", offset);
>> }
>>
>> if (is_power_of_2(size + 1))
>> size = size + 1;
>> else if (!is_power_of_2(size))
>> {
>> dev_err(dev, "invalid size\n");
>> return;
>> }
>
> In of_dma_configure(), we currently assume that the default coherent
> mask is 32-bit. In this thread:
>
> http://article.gmane.org/gmane.linux.kernel/1835096
>
> we talked about setting the coherent mask based on size automatically.
> I'm not sure about the size but I think we can assume is 32-bit mask + 1
> if it is not specified in the DT. Instead of just assuming a default
> mask, let's assume a default size and create the mask based on this
> (untested):
>
> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
> index 5b33c6a21807..9ff8d1286b44 100644
> --- a/drivers/of/platform.c
> +++ b/drivers/of/platform.c
> @@ -170,10 +170,10 @@ static void of_dma_configure(struct device *dev)
> struct iommu_ops *iommu;
>
> /*
> - * Set default dma-mask to 32 bit. Drivers are expected to setup
> - * the correct supported dma_mask.
> + * Set default size to cover the 32-bit. Drivers are expected to setup
> + * the correct size and dma_mask.
> */
> - dev->coherent_dma_mask = DMA_BIT_MASK(32);
> + size = 1ULL << 32;
>
> /*
> * Set it to coherent_dma_mask by default if the architecture
> @@ -185,13 +185,24 @@ static void of_dma_configure(struct device *dev)
> ret = of_dma_get_range(dev->of_node, &dma_addr, &paddr, &size);
> if (ret < 0) {
> dma_addr = offset = 0;
> - size = dev->coherent_dma_mask;
> } else {
> offset = PFN_DOWN(paddr - dma_addr);
> dev_dbg(dev, "dma_pfn_offset(%#08lx)\n", dev->dma_pfn_offset);
> }
> dev->dma_pfn_offset = offset;
>
> + /*
> + * Workaround for DTs setting the size to a mask or 0.
> + */
> + if (is_power_of_2(size + 1))
> + size += 1;
In fact, since the ilog2 below ends up effectively rounding down, we
might as well do away with this check as well and just add 1
unconditionally. The only time it makes any difference is when we want
it to anyway!
I like this approach, it ends up looking a lot neater.
Robin.
> +
> + /*
> + * Coherent DMA masks larger than 32-bit must be explicitly set by the
> + * driver.
> + */
> + dev->coherent_dma_mask = min(DMA_BIT_MASK(32), DMA_BIT_MASK(ilog2(size)));
> +
> coherent = of_dma_is_coherent(dev->of_node);
> dev_dbg(dev, "device is%sdma coherent\n",
> coherent ? " " : " not ");
>
next prev parent reply other threads:[~2015-01-28 15:55 UTC|newest]
Thread overview: 131+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-23 22:32 [PATCH v4 0/6] PCI: get DMA configuration from parent device Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
[not found] ` <1422052359-12384-1-git-send-email-m-karicheri2-l0cyMroinI0@public.gmane.org>
2015-01-23 22:32 ` [PATCH v4 1/6] of: iommu: add ptr to OF node arg to of_iommu_configure() Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
[not found] ` <1422052359-12384-2-git-send-email-m-karicheri2-l0cyMroinI0@public.gmane.org>
2015-01-25 13:32 ` Laurent Pinchart
2015-01-25 13:32 ` Laurent Pinchart
2015-01-25 13:32 ` Laurent Pinchart
2015-01-26 18:49 ` Murali Karicheri
2015-01-26 18:49 ` Murali Karicheri
2015-01-26 18:49 ` Murali Karicheri
[not found] ` <54C68C1D.5030605-l0cyMroinI0@public.gmane.org>
2015-01-28 11:33 ` Will Deacon
2015-01-28 11:33 ` Will Deacon
2015-01-28 11:33 ` Will Deacon
[not found] ` <20150128113300.GF1569-5wv7dgnIgG8@public.gmane.org>
2015-01-28 12:23 ` Laurent Pinchart
2015-01-28 12:23 ` Laurent Pinchart
2015-01-28 12:23 ` Laurent Pinchart
2015-01-28 12:29 ` Will Deacon
2015-01-28 12:29 ` Will Deacon
2015-01-28 12:29 ` Will Deacon
[not found] ` <20150128122941.GK1569-5wv7dgnIgG8@public.gmane.org>
2015-01-28 13:15 ` Laurent Pinchart
2015-01-28 13:15 ` Laurent Pinchart
2015-01-28 13:15 ` Laurent Pinchart
2015-01-28 13:32 ` Will Deacon
2015-01-28 13:32 ` Will Deacon
2015-01-28 13:32 ` Will Deacon
[not found] ` <20150128133219.GM1569-5wv7dgnIgG8@public.gmane.org>
2015-01-28 15:21 ` Murali Karicheri
2015-01-28 15:21 ` Murali Karicheri
2015-01-28 15:21 ` Murali Karicheri
2015-01-28 23:32 ` Laurent Pinchart
2015-01-28 23:32 ` Laurent Pinchart
2015-01-28 23:32 ` Laurent Pinchart
2015-01-29 14:59 ` Murali Karicheri
2015-01-29 14:59 ` Murali Karicheri
2015-01-29 14:59 ` Murali Karicheri
2015-01-29 16:49 ` Rob Herring
2015-01-29 16:49 ` Rob Herring
2015-01-29 16:49 ` Rob Herring
[not found] ` <CAL_Jsq+rzwk0Rw5RRKf9oLqXNFFgnJb4UQ_AzpJLxN1Z0rJWMQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-30 0:24 ` Laurent Pinchart
2015-01-30 0:24 ` Laurent Pinchart
2015-01-30 0:24 ` Laurent Pinchart
2015-01-30 15:23 ` Murali Karicheri
2015-01-30 15:23 ` Murali Karicheri
2015-01-30 15:23 ` Murali Karicheri
2015-01-23 22:32 ` [PATCH v4 2/6] of: move of_dma_configure() to device.c to help re-use Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
2015-01-23 22:32 ` [PATCH v4 4/6] of/pci: add of_pci_dma_configure() update dma configuration Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
[not found] ` <1422052359-12384-5-git-send-email-m-karicheri2-l0cyMroinI0@public.gmane.org>
2015-01-23 23:41 ` Bjorn Helgaas
2015-01-23 23:41 ` Bjorn Helgaas
2015-01-23 23:41 ` Bjorn Helgaas
[not found] ` <20150123234124.GW29776-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2015-01-26 23:25 ` Murali Karicheri
2015-01-26 23:25 ` Murali Karicheri
2015-01-26 23:25 ` Murali Karicheri
[not found] ` <54C6CCF3.7080308-l0cyMroinI0@public.gmane.org>
2015-01-26 23:59 ` Bjorn Helgaas
2015-01-26 23:59 ` Bjorn Helgaas
2015-01-26 23:59 ` Bjorn Helgaas
[not found] ` <CAErSpo4w0zVCmXk2D2Qk5W3kceS9Wk+=jqHBDwk6HUXWwXdq_Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-27 18:14 ` Murali Karicheri
2015-01-27 18:14 ` Murali Karicheri
2015-01-27 18:14 ` Murali Karicheri
[not found] ` <54C7D576.6030502-l0cyMroinI0@public.gmane.org>
2015-01-27 18:42 ` Bjorn Helgaas
2015-01-27 18:42 ` Bjorn Helgaas
2015-01-27 18:42 ` Bjorn Helgaas
[not found] ` <CAErSpo4Awgqu0ZtoMm0XSZzhnYtXh3xxH2OJMkyth5YDR9GUiA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-27 18:45 ` Murali Karicheri
2015-01-27 18:45 ` Murali Karicheri
2015-01-27 18:45 ` Murali Karicheri
2015-01-23 22:32 ` [PATCH v4 5/6] PCI: update dma configuration from DT Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
[not found] ` <1422052359-12384-6-git-send-email-m-karicheri2-l0cyMroinI0@public.gmane.org>
2015-01-23 23:27 ` Bjorn Helgaas
2015-01-23 23:27 ` Bjorn Helgaas
2015-01-23 23:27 ` Bjorn Helgaas
[not found] ` <20150123232725.GV29776-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2015-01-26 23:28 ` Murali Karicheri
2015-01-26 23:28 ` Murali Karicheri
2015-01-26 23:28 ` Murali Karicheri
2015-01-23 22:32 ` [PATCH v4 3/6] of: fix size when dma-range is not used Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
2015-01-27 11:27 ` Robin Murphy
2015-01-27 11:27 ` Robin Murphy
2015-01-27 15:44 ` Murali Karicheri
2015-01-27 15:44 ` Murali Karicheri
[not found] ` <54C77616.80301-5wv7dgnIgG8@public.gmane.org>
2015-01-27 18:55 ` Murali Karicheri
2015-01-27 18:55 ` Murali Karicheri
2015-01-27 18:55 ` Murali Karicheri
[not found] ` <54C7DF13.20402-l0cyMroinI0@public.gmane.org>
2015-01-28 11:05 ` Catalin Marinas
2015-01-28 11:05 ` Catalin Marinas
2015-01-28 11:05 ` Catalin Marinas
[not found] ` <20150128110523.GC6646-M2fw3Uu6cmfZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2015-01-28 15:45 ` Rob Herring
2015-01-28 15:45 ` Rob Herring
2015-01-28 15:45 ` Rob Herring
[not found] ` <CAL_JsqJiCKW0ny=_ueq=A7RH3octpEhN+KZuLZhbNEHusyjcig-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-01-28 17:23 ` Catalin Marinas
2015-01-28 17:23 ` Catalin Marinas
2015-01-28 17:23 ` Catalin Marinas
2015-01-28 17:34 ` Murali Karicheri
2015-01-28 17:34 ` Murali Karicheri
2015-01-28 17:34 ` Murali Karicheri
2015-01-28 15:55 ` Robin Murphy [this message]
2015-01-28 15:55 ` Robin Murphy
2015-01-28 15:55 ` Robin Murphy
[not found] ` <54C9068D.8050701-5wv7dgnIgG8@public.gmane.org>
2015-01-28 17:30 ` Catalin Marinas
2015-01-28 17:30 ` Catalin Marinas
2015-01-28 17:30 ` Catalin Marinas
2015-01-30 18:06 ` Murali Karicheri
2015-01-30 18:06 ` Murali Karicheri
[not found] ` <54CBC823.3020905-l0cyMroinI0@public.gmane.org>
2015-02-02 12:18 ` Catalin Marinas
2015-02-02 12:18 ` Catalin Marinas
2015-02-02 12:18 ` Catalin Marinas
[not found] ` <20150202121843.GD22661-M2fw3Uu6cmfZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2015-02-02 16:10 ` Murali Karicheri
2015-02-02 16:10 ` Murali Karicheri
2015-02-02 16:10 ` Murali Karicheri
2015-02-05 21:42 ` Murali Karicheri
2015-02-05 21:42 ` Murali Karicheri
[not found] ` <54D3E3C3.1040104-l0cyMroinI0@public.gmane.org>
2015-02-05 22:44 ` Catalin Marinas
2015-02-05 22:44 ` Catalin Marinas
2015-02-05 22:44 ` Catalin Marinas
2015-01-23 22:32 ` [PATCH v4 6/6] arm: dma-mapping: updates to limit dma_mask and iommu mapping size Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
2015-01-23 22:32 ` Murali Karicheri
[not found] ` <1422052359-12384-7-git-send-email-m-karicheri2-l0cyMroinI0@public.gmane.org>
2015-01-27 11:12 ` Robin Murphy
2015-01-27 11:12 ` Robin Murphy
2015-01-27 11:12 ` Robin Murphy
[not found] ` <54C772A0.2000203-5wv7dgnIgG8@public.gmane.org>
2015-01-27 11:34 ` Catalin Marinas
2015-01-27 11:34 ` Catalin Marinas
2015-01-27 11:34 ` Catalin Marinas
[not found] ` <20150127113416.GB3226-M2fw3Uu6cmfZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2015-01-27 15:19 ` Murali Karicheri
2015-01-27 15:19 ` Murali Karicheri
2015-01-27 15:19 ` Murali Karicheri
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=54C9068D.8050701@arm.com \
--to=robin.murphy-5wv7dgnigg8@public.gmane.org \
--cc=Will.Deacon-5wv7dgnIgG8@public.gmane.org \
--cc=arnd-r2nGTMty4D4@public.gmane.org \
--cc=bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=catalin.marinas-5wv7dgnIgG8@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
--cc=linux-pci-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=m-karicheri2-l0cyMroinI0@public.gmane.org \
--cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@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.