All of lore.kernel.org
 help / color / mirror / Atom feed
From: Murali Karicheri <m-karicheri2@ti.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-pci@vger.kernel.org>, Joerg Roedel <joro@8bytes.org>,
	Grant Likely <grant.likely@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Will Deacon <will.deacon@arm.com>,
	Russell King <linux@arm.linux.org.uk>,
	Arnd Bergmann <arnd@arndb.de>,
	Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>,
	Catalin Marinas <catalin.marinas@arm.com>
Subject: Re: [PATCH v1] of: calculate masks of the device based on dma-range size
Date: Fri, 27 Feb 2015 15:41:44 -0500	[thread overview]
Message-ID: <54F0D688.5090006@ti.com> (raw)
In-Reply-To: <20150226002033.GR6220@google.com>

On 02/25/2015 07:20 PM, Bjorn Helgaas wrote:
> [+cc Catalin]
>
> On Wed, Feb 11, 2015 at 12:53:35PM -0500, Murali Karicheri wrote:
>> This patch update of_dma_configure() API to calculate the
>> masks (dma_mask and coherent_dma_mask) based on the dma-range
>> values set in DT for the device. Also limit the mask to lower
>> of the default mask and mask calculated.
>>
>> 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>
>
> Applied with Catalin's reviewed-by to pci/iommu for v4.1, thanks!
>
> I agree with Catalin's comment about the "size = 1ULL<<  32" line.
> I don't see how that will make a difference, so I dropped it.  The
> patch I merged is below.  Let me know if you think we do need that
> line or any other tweaks.
>
> Bjorn
>
> commit a5a1dd69080dfcf53bfd6e179f3db68e824aeaae
> Author: Murali Karicheri<m-karicheri2@ti.com>
> Date:   Wed Feb 25 17:21:04 2015 -0600
>
>      of: Calculate device DMA masks based on DT dma-range size
>
>      Calculate the dma_mask and coherent_dma_mask based on the dma-range values
>      set in DT for the device.
>
>      Limit the mask to lower of the default mask and mask calculated.
>
>      Signed-off-by: Murali Karicheri<m-karicheri2@ti.com>
>      Signed-off-by: Bjorn Helgaas<bhelgaas@google.com>
>      Reviewed-by: Catalin Marinas<catalin.marinas@arm.com>
>      CC: Joerg Roedel<joro@8bytes.org>
>      CC: Grant Likely<grant.likely@linaro.org>
>      CC: Rob Herring<robh+dt@kernel.org>
>      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>
>
> diff --git a/drivers/of/device.c b/drivers/of/device.c
> index 28e743888402..20c1332a0018 100644
> --- a/drivers/of/device.c
> +++ b/drivers/of/device.c
> @@ -90,10 +90,11 @@ void of_dma_configure(struct device *dev, struct device_node *np)
>   	struct iommu_ops *iommu;
>
>   	/*
> -	 * Set default dma-mask to 32 bit.  Drivers are expected to setup
> -	 * the correct supported dma_mask.
> +	 * Set default coherent_dma_mask to 32 bit.  Drivers are expected to
> +	 * setup the correct supported mask.
>   	 */
> -	dev->coherent_dma_mask = DMA_BIT_MASK(32);
> +	if (!dev->coherent_dma_mask)
> +		dev->coherent_dma_mask = DMA_BIT_MASK(32);
>
>   	/*
>   	 * Set it to coherent_dma_mask by default if the architecture
> @@ -128,6 +129,15 @@ void of_dma_configure(struct device *dev, struct device_node *np)
>
>   	dev->dma_pfn_offset = offset;
>
> +	/*
> +	 * Limit coherent and dma mask based on size and default mask
> +	 * set by the driver.
> +	 */
> +	dev->coherent_dma_mask = min(dev->coherent_dma_mask,
> +				     DMA_BIT_MASK(ilog2(dma_addr + size)));
> +	*dev->dma_mask = min((*dev->dma_mask),
> +			     DMA_BIT_MASK(ilog2(dma_addr + size)));
> +
>   	coherent = of_dma_is_coherent(np);
>   	dev_dbg(dev, "device is%sdma coherent\n",
>   		coherent ? " " : " not ");
Bjorn,

Thanks. Looks good to me.

Murali

-- 
Murali Karicheri
Linux Kernel, Texas Instruments

WARNING: multiple messages have this Message-ID (diff)
From: m-karicheri2@ti.com (Murali Karicheri)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v1] of: calculate masks of the device based on dma-range size
Date: Fri, 27 Feb 2015 15:41:44 -0500	[thread overview]
Message-ID: <54F0D688.5090006@ti.com> (raw)
In-Reply-To: <20150226002033.GR6220@google.com>

On 02/25/2015 07:20 PM, Bjorn Helgaas wrote:
> [+cc Catalin]
>
> On Wed, Feb 11, 2015 at 12:53:35PM -0500, Murali Karicheri wrote:
>> This patch update of_dma_configure() API to calculate the
>> masks (dma_mask and coherent_dma_mask) based on the dma-range
>> values set in DT for the device. Also limit the mask to lower
>> of the default mask and mask calculated.
>>
>> 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>
>
> Applied with Catalin's reviewed-by to pci/iommu for v4.1, thanks!
>
> I agree with Catalin's comment about the "size = 1ULL<<  32" line.
> I don't see how that will make a difference, so I dropped it.  The
> patch I merged is below.  Let me know if you think we do need that
> line or any other tweaks.
>
> Bjorn
>
> commit a5a1dd69080dfcf53bfd6e179f3db68e824aeaae
> Author: Murali Karicheri<m-karicheri2@ti.com>
> Date:   Wed Feb 25 17:21:04 2015 -0600
>
>      of: Calculate device DMA masks based on DT dma-range size
>
>      Calculate the dma_mask and coherent_dma_mask based on the dma-range values
>      set in DT for the device.
>
>      Limit the mask to lower of the default mask and mask calculated.
>
>      Signed-off-by: Murali Karicheri<m-karicheri2@ti.com>
>      Signed-off-by: Bjorn Helgaas<bhelgaas@google.com>
>      Reviewed-by: Catalin Marinas<catalin.marinas@arm.com>
>      CC: Joerg Roedel<joro@8bytes.org>
>      CC: Grant Likely<grant.likely@linaro.org>
>      CC: Rob Herring<robh+dt@kernel.org>
>      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>
>
> diff --git a/drivers/of/device.c b/drivers/of/device.c
> index 28e743888402..20c1332a0018 100644
> --- a/drivers/of/device.c
> +++ b/drivers/of/device.c
> @@ -90,10 +90,11 @@ void of_dma_configure(struct device *dev, struct device_node *np)
>   	struct iommu_ops *iommu;
>
>   	/*
> -	 * Set default dma-mask to 32 bit.  Drivers are expected to setup
> -	 * the correct supported dma_mask.
> +	 * Set default coherent_dma_mask to 32 bit.  Drivers are expected to
> +	 * setup the correct supported mask.
>   	 */
> -	dev->coherent_dma_mask = DMA_BIT_MASK(32);
> +	if (!dev->coherent_dma_mask)
> +		dev->coherent_dma_mask = DMA_BIT_MASK(32);
>
>   	/*
>   	 * Set it to coherent_dma_mask by default if the architecture
> @@ -128,6 +129,15 @@ void of_dma_configure(struct device *dev, struct device_node *np)
>
>   	dev->dma_pfn_offset = offset;
>
> +	/*
> +	 * Limit coherent and dma mask based on size and default mask
> +	 * set by the driver.
> +	 */
> +	dev->coherent_dma_mask = min(dev->coherent_dma_mask,
> +				     DMA_BIT_MASK(ilog2(dma_addr + size)));
> +	*dev->dma_mask = min((*dev->dma_mask),
> +			     DMA_BIT_MASK(ilog2(dma_addr + size)));
> +
>   	coherent = of_dma_is_coherent(np);
>   	dev_dbg(dev, "device is%sdma coherent\n",
>   		coherent ? " " : " not ");
Bjorn,

Thanks. Looks good to me.

Murali

-- 
Murali Karicheri
Linux Kernel, Texas Instruments

WARNING: multiple messages have this Message-ID (diff)
From: Murali Karicheri <m-karicheri2@ti.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
	linux-pci@vger.kernel.org, Joerg Roedel <joro@8bytes.org>,
	Grant Likely <grant.likely@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Will Deacon <will.deacon@arm.com>,
	Russell King <linux@arm.linux.org.uk>,
	Arnd Bergmann <arnd@arndb.de>,
	Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>,
	Catalin Marinas <catalin.marinas@arm.com>
Subject: Re: [PATCH v1] of: calculate masks of the device based on dma-range size
Date: Fri, 27 Feb 2015 15:41:44 -0500	[thread overview]
Message-ID: <54F0D688.5090006@ti.com> (raw)
In-Reply-To: <20150226002033.GR6220@google.com>

On 02/25/2015 07:20 PM, Bjorn Helgaas wrote:
> [+cc Catalin]
>
> On Wed, Feb 11, 2015 at 12:53:35PM -0500, Murali Karicheri wrote:
>> This patch update of_dma_configure() API to calculate the
>> masks (dma_mask and coherent_dma_mask) based on the dma-range
>> values set in DT for the device. Also limit the mask to lower
>> of the default mask and mask calculated.
>>
>> 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>
>
> Applied with Catalin's reviewed-by to pci/iommu for v4.1, thanks!
>
> I agree with Catalin's comment about the "size = 1ULL<<  32" line.
> I don't see how that will make a difference, so I dropped it.  The
> patch I merged is below.  Let me know if you think we do need that
> line or any other tweaks.
>
> Bjorn
>
> commit a5a1dd69080dfcf53bfd6e179f3db68e824aeaae
> Author: Murali Karicheri<m-karicheri2@ti.com>
> Date:   Wed Feb 25 17:21:04 2015 -0600
>
>      of: Calculate device DMA masks based on DT dma-range size
>
>      Calculate the dma_mask and coherent_dma_mask based on the dma-range values
>      set in DT for the device.
>
>      Limit the mask to lower of the default mask and mask calculated.
>
>      Signed-off-by: Murali Karicheri<m-karicheri2@ti.com>
>      Signed-off-by: Bjorn Helgaas<bhelgaas@google.com>
>      Reviewed-by: Catalin Marinas<catalin.marinas@arm.com>
>      CC: Joerg Roedel<joro@8bytes.org>
>      CC: Grant Likely<grant.likely@linaro.org>
>      CC: Rob Herring<robh+dt@kernel.org>
>      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>
>
> diff --git a/drivers/of/device.c b/drivers/of/device.c
> index 28e743888402..20c1332a0018 100644
> --- a/drivers/of/device.c
> +++ b/drivers/of/device.c
> @@ -90,10 +90,11 @@ void of_dma_configure(struct device *dev, struct device_node *np)
>   	struct iommu_ops *iommu;
>
>   	/*
> -	 * Set default dma-mask to 32 bit.  Drivers are expected to setup
> -	 * the correct supported dma_mask.
> +	 * Set default coherent_dma_mask to 32 bit.  Drivers are expected to
> +	 * setup the correct supported mask.
>   	 */
> -	dev->coherent_dma_mask = DMA_BIT_MASK(32);
> +	if (!dev->coherent_dma_mask)
> +		dev->coherent_dma_mask = DMA_BIT_MASK(32);
>
>   	/*
>   	 * Set it to coherent_dma_mask by default if the architecture
> @@ -128,6 +129,15 @@ void of_dma_configure(struct device *dev, struct device_node *np)
>
>   	dev->dma_pfn_offset = offset;
>
> +	/*
> +	 * Limit coherent and dma mask based on size and default mask
> +	 * set by the driver.
> +	 */
> +	dev->coherent_dma_mask = min(dev->coherent_dma_mask,
> +				     DMA_BIT_MASK(ilog2(dma_addr + size)));
> +	*dev->dma_mask = min((*dev->dma_mask),
> +			     DMA_BIT_MASK(ilog2(dma_addr + size)));
> +
>   	coherent = of_dma_is_coherent(np);
>   	dev_dbg(dev, "device is%sdma coherent\n",
>   		coherent ? " " : " not ");
Bjorn,

Thanks. Looks good to me.

Murali

-- 
Murali Karicheri
Linux Kernel, Texas Instruments

  reply	other threads:[~2015-02-27 20:42 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-11 17:53 [PATCH v1] of: calculate masks of the device based on dma-range size Murali Karicheri
2015-02-11 17:53 ` Murali Karicheri
2015-02-11 17:53 ` Murali Karicheri
2015-02-11 18:47 ` Catalin Marinas
2015-02-11 18:47   ` Catalin Marinas
2015-02-26  0:20 ` Bjorn Helgaas
2015-02-26  0:20   ` Bjorn Helgaas
2015-02-27 20:41   ` Murali Karicheri [this message]
2015-02-27 20:41     ` Murali Karicheri
2015-02-27 20:41     ` Murali Karicheri
2015-03-03 17:59   ` Murali Karicheri
2015-03-03 17:59     ` Murali Karicheri
2015-03-03 17:59     ` Murali Karicheri
2015-03-03 20:49     ` Bjorn Helgaas
2015-03-03 20:49       ` Bjorn Helgaas
2015-03-03 20:49       ` Bjorn Helgaas

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=54F0D688.5090006@ti.com \
    --to=m-karicheri2@ti.com \
    --cc=Suravee.Suthikulpanit@amd.com \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=grant.likely@linaro.org \
    --cc=joro@8bytes.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=robh+dt@kernel.org \
    --cc=will.deacon@arm.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.