All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hiroshi Doyu <hdoyu@nvidia.com>
To: "balbi@ti.com" <balbi@ti.com>, Stephen Warren <swarren@wwwdotorg.org>
Cc: Russell King <linux@arm.linux.org.uk>,
	H Hartley Sweeten <hsweeten@visionengravers.com>,
	Tony Lindgren <tony@atomide.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Jamie Iles <jamie@jamieiles.com>, Olof Johansson <olof@lixom.net>,
	Rob Herring <rob.herring@calxeda.com>,
	Colin Cross <ccross@android.com>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	Stephen Warren <swarren@nvidia.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCHv3 2/4] ARM: tegra: Add SMMU enabler in AHB
Date: Thu, 26 Apr 2012 08:37:16 +0300	[thread overview]
Message-ID: <20120426083716.69efa6f5b58200e265b2e867@nvidia.com> (raw)
In-Reply-To: <4F981D96.3000401@wwwdotorg.org>

On Wed, 25 Apr 2012 17:51:50 +0200
Stephen Warren <swarren@wwwdotorg.org> wrote:

> On 04/25/2012 05:29 AM, Felipe Balbi wrote:
> > Hi,
> > 
> > On Wed, Apr 25, 2012 at 02:07:37PM +0300, Hiroshi DOYU wrote:
> >> Add extern func, "tegra_ahb_enable_smmu()" to inform AHB that SMMU is
> >> ready.
> 
> >> +#ifdef CONFIG_ARCH_TEGRA_3x_SOC
> >> +static int __tegra_ahb_enable_smmu(struct device *dev, void *data)
> >> +{
> >> +	u32 val;
> >> +	struct tegra_ahb *ahb = dev_get_drvdata(dev);
> >> +
> >> +	val = gizmo_readl(ahb, AHB_ARBITRATION_XBAR_CTRL);
> >> +	val |= AHB_ARBITRATION_XBAR_CTRL_SMMU_INIT_DONE;
> >> +	gizmo_writel(ahb, val, AHB_ARBITRATION_XBAR_CTRL);
> >> +	return 0;
> >> +}
> >> +
> >> +int tegra_ahb_enable_smmu(void)
> >> +{
> >> +	return driver_for_each_device(&tegra_ahb_driver.driver, NULL, NULL,
> >> +				      __tegra_ahb_enable_smmu);
> >> +}
> >> +EXPORT_SYMBOL(tegra_ahb_enable_smmu);
> >> +#endif
> > 
> > this is still not correct. If you will always call this whenever you run
> > on tegra 3, why do you even expose this function ?
> 
> I think the issue is that this function should only be called after the
> SMMU driver has initialized the SMMU, and it's ready to be activated.

Right. "tegra_ahb_enable_smmu()" is not supposed to be called at
tegra_ahb_probe(), but it is always expected to be called after SMMU
is initialized/gets ready.

The sequence is:
 1, AHB is probed.
 ...<any other operations>...
 2, SMMU is probed.
 ...<any other operations>...
 3, SMMU is ready, then,
 4, SMMU lets AHB know that SMMU is ready to be used by AHB clients.

The above step 4 is "tegra_ahb_enable_smmu()".

WARNING: multiple messages have this Message-ID (diff)
From: Hiroshi Doyu <hdoyu@nvidia.com>
To: "balbi@ti.com" <balbi@ti.com>, Stephen Warren <swarren@wwwdotorg.org>
Cc: Stephen Warren <swarren@nvidia.com>,
	"linux-tegra@vger.kernel.org" <linux-tegra@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	Colin Cross <ccross@android.com>, Olof Johansson <olof@lixom.net>,
	Russell King <linux@arm.linux.org.uk>,
	"Tony Lindgren" <tony@atomide.com>,
	H Hartley Sweeten <hsweeten@visionengravers.com>,
	Jamie Iles <jamie@jamieiles.com>,
	"Rob Herring" <rob.herring@calxeda.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCHv3 2/4] ARM: tegra: Add SMMU enabler in AHB
Date: Thu, 26 Apr 2012 08:37:16 +0300	[thread overview]
Message-ID: <20120426083716.69efa6f5b58200e265b2e867@nvidia.com> (raw)
In-Reply-To: <4F981D96.3000401@wwwdotorg.org>

On Wed, 25 Apr 2012 17:51:50 +0200
Stephen Warren <swarren@wwwdotorg.org> wrote:

> On 04/25/2012 05:29 AM, Felipe Balbi wrote:
> > Hi,
> > 
> > On Wed, Apr 25, 2012 at 02:07:37PM +0300, Hiroshi DOYU wrote:
> >> Add extern func, "tegra_ahb_enable_smmu()" to inform AHB that SMMU is
> >> ready.
> 
> >> +#ifdef CONFIG_ARCH_TEGRA_3x_SOC
> >> +static int __tegra_ahb_enable_smmu(struct device *dev, void *data)
> >> +{
> >> +	u32 val;
> >> +	struct tegra_ahb *ahb = dev_get_drvdata(dev);
> >> +
> >> +	val = gizmo_readl(ahb, AHB_ARBITRATION_XBAR_CTRL);
> >> +	val |= AHB_ARBITRATION_XBAR_CTRL_SMMU_INIT_DONE;
> >> +	gizmo_writel(ahb, val, AHB_ARBITRATION_XBAR_CTRL);
> >> +	return 0;
> >> +}
> >> +
> >> +int tegra_ahb_enable_smmu(void)
> >> +{
> >> +	return driver_for_each_device(&tegra_ahb_driver.driver, NULL, NULL,
> >> +				      __tegra_ahb_enable_smmu);
> >> +}
> >> +EXPORT_SYMBOL(tegra_ahb_enable_smmu);
> >> +#endif
> > 
> > this is still not correct. If you will always call this whenever you run
> > on tegra 3, why do you even expose this function ?
> 
> I think the issue is that this function should only be called after the
> SMMU driver has initialized the SMMU, and it's ready to be activated.

Right. "tegra_ahb_enable_smmu()" is not supposed to be called at
tegra_ahb_probe(), but it is always expected to be called after SMMU
is initialized/gets ready.

The sequence is:
 1, AHB is probed.
 ...<any other operations>...
 2, SMMU is probed.
 ...<any other operations>...
 3, SMMU is ready, then,
 4, SMMU lets AHB know that SMMU is ready to be used by AHB clients.

The above step 4 is "tegra_ahb_enable_smmu()".

WARNING: multiple messages have this Message-ID (diff)
From: hdoyu@nvidia.com (Hiroshi Doyu)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCHv3 2/4] ARM: tegra: Add SMMU enabler in AHB
Date: Thu, 26 Apr 2012 08:37:16 +0300	[thread overview]
Message-ID: <20120426083716.69efa6f5b58200e265b2e867@nvidia.com> (raw)
In-Reply-To: <4F981D96.3000401@wwwdotorg.org>

On Wed, 25 Apr 2012 17:51:50 +0200
Stephen Warren <swarren@wwwdotorg.org> wrote:

> On 04/25/2012 05:29 AM, Felipe Balbi wrote:
> > Hi,
> > 
> > On Wed, Apr 25, 2012 at 02:07:37PM +0300, Hiroshi DOYU wrote:
> >> Add extern func, "tegra_ahb_enable_smmu()" to inform AHB that SMMU is
> >> ready.
> 
> >> +#ifdef CONFIG_ARCH_TEGRA_3x_SOC
> >> +static int __tegra_ahb_enable_smmu(struct device *dev, void *data)
> >> +{
> >> +	u32 val;
> >> +	struct tegra_ahb *ahb = dev_get_drvdata(dev);
> >> +
> >> +	val = gizmo_readl(ahb, AHB_ARBITRATION_XBAR_CTRL);
> >> +	val |= AHB_ARBITRATION_XBAR_CTRL_SMMU_INIT_DONE;
> >> +	gizmo_writel(ahb, val, AHB_ARBITRATION_XBAR_CTRL);
> >> +	return 0;
> >> +}
> >> +
> >> +int tegra_ahb_enable_smmu(void)
> >> +{
> >> +	return driver_for_each_device(&tegra_ahb_driver.driver, NULL, NULL,
> >> +				      __tegra_ahb_enable_smmu);
> >> +}
> >> +EXPORT_SYMBOL(tegra_ahb_enable_smmu);
> >> +#endif
> > 
> > this is still not correct. If you will always call this whenever you run
> > on tegra 3, why do you even expose this function ?
> 
> I think the issue is that this function should only be called after the
> SMMU driver has initialized the SMMU, and it's ready to be activated.

Right. "tegra_ahb_enable_smmu()" is not supposed to be called at
tegra_ahb_probe(), but it is always expected to be called after SMMU
is initialized/gets ready.

The sequence is:
 1, AHB is probed.
 ...<any other operations>...
 2, SMMU is probed.
 ...<any other operations>...
 3, SMMU is ready, then,
 4, SMMU lets AHB know that SMMU is ready to be used by AHB clients.

The above step 4 is "tegra_ahb_enable_smmu()".

  reply	other threads:[~2012-04-26  5:37 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-25 11:07 [PATCHv3 1/4] ARM: tegra: Add AHB driver Hiroshi DOYU
2012-04-25 11:07 ` Hiroshi DOYU
2012-04-25 11:07 ` Hiroshi DOYU
2012-04-25 11:07 ` [PATCHv3 2/4] ARM: tegra: Add SMMU enabler in AHB Hiroshi DOYU
2012-04-25 11:07   ` Hiroshi DOYU
     [not found]   ` <1335352072-4001-2-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-04-25 11:29     ` Felipe Balbi
2012-04-25 11:29       ` Felipe Balbi
2012-04-25 11:29       ` Felipe Balbi
     [not found]       ` <20120425112950.GC3564-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2012-04-25 15:51         ` Stephen Warren
2012-04-25 15:51           ` Stephen Warren
2012-04-25 15:51           ` Stephen Warren
2012-04-26  5:37           ` Hiroshi Doyu [this message]
2012-04-26  5:37             ` Hiroshi Doyu
2012-04-26  5:37             ` Hiroshi Doyu
2012-04-26 19:55     ` Stephen Warren
2012-04-26 19:55       ` Stephen Warren
2012-04-26 19:55       ` Stephen Warren
2012-04-26 20:26       ` Felipe Balbi
2012-04-26 20:26         ` Felipe Balbi
     [not found]         ` <20120426202610.GA30690-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2012-04-26 20:32           ` Stephen Warren
2012-04-26 20:32             ` Stephen Warren
2012-04-26 20:32             ` Stephen Warren
2012-04-26 20:38             ` Felipe Balbi
2012-04-26 20:38               ` Felipe Balbi
2012-04-27  6:48               ` Hiroshi Doyu
2012-04-27  6:48                 ` Hiroshi Doyu
2012-04-27  6:48                 ` Hiroshi Doyu
     [not found]                 ` <20120427.094826.1181797260264746303.hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-04-27  6:55                   ` Hiroshi Doyu
2012-04-27  6:55                     ` Hiroshi Doyu
2012-04-27  6:55                     ` Hiroshi Doyu
2012-04-27 15:49                 ` Stephen Warren
2012-04-27 15:49                   ` Stephen Warren
2012-04-27 15:49                   ` Stephen Warren
     [not found] ` <1335352072-4001-1-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-04-25 11:07   ` [PATCHv3 3/4] iommu/tegra: smmu: Refrain from accessing to AHB registers Hiroshi DOYU
2012-04-25 11:07     ` Hiroshi DOYU
2012-04-25 11:07     ` Hiroshi DOYU
2012-04-26 19:58     ` Stephen Warren
2012-04-26 19:58       ` Stephen Warren
2012-04-25 11:07   ` [PATCHv3 4/4] ARM: dt: tegra: Add device tree support for AHB Hiroshi DOYU
2012-04-25 11:07     ` Hiroshi DOYU
2012-04-25 11:07     ` Hiroshi DOYU
     [not found]     ` <1335352072-4001-4-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-04-26 20:01       ` Stephen Warren
2012-04-26 20:01         ` Stephen Warren
2012-04-26 20:01         ` Stephen Warren
2012-04-26 19:51   ` [PATCHv3 1/4] ARM: tegra: Add AHB driver Stephen Warren
2012-04-26 19:51     ` Stephen Warren
2012-04-26 19:51     ` Stephen Warren
     [not found]     ` <4F99A740.3080407-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2012-04-26 21:59       ` Russell King - ARM Linux
2012-04-26 21:59         ` Russell King - ARM Linux
2012-04-26 21:59         ` Russell King - ARM Linux
     [not found]         ` <20120426215903.GH24211-l+eeeJia6m9vn6HldHNs0ANdhmdF6hFW@public.gmane.org>
2012-04-27  5:40           ` Hiroshi Doyu
2012-04-27  5:40             ` Hiroshi Doyu
2012-04-27  5:40             ` Hiroshi Doyu
     [not found]             ` <20120427084015.cb7c8e00c7d9a4cd01faa5ae-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-04-30 14:47               ` Arnd Bergmann
2012-04-30 14:47                 ` Arnd Bergmann
2012-04-30 14:47                 ` Arnd Bergmann
2012-04-25 11:25 ` Felipe Balbi
2012-04-25 11:25   ` Felipe Balbi
2012-04-25 11:25   ` Felipe Balbi
     [not found]   ` <20120425112519.GB3564-S8G//mZuvNWo5Im9Ml3/Zg@public.gmane.org>
2012-04-25 13:01     ` Hiroshi Doyu
2012-04-25 13:01       ` Hiroshi Doyu
2012-04-25 13:01       ` Hiroshi Doyu
2012-05-03 16:05 [PATCHv3 1/4] ARM: tegra: Add Tegra " Hiroshi DOYU
2012-05-03 16:05 ` [PATCHv3 2/4] ARM: tegra: Add SMMU enabler in AHB Hiroshi DOYU
2012-05-03 16:05   ` Hiroshi DOYU
     [not found]   ` <1336061147-10245-2-git-send-email-hdoyu-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2012-05-03 17:43     ` Stephen Warren
2012-05-03 17:43       ` Stephen Warren
2012-05-03 17:43       ` Stephen Warren

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=20120426083716.69efa6f5b58200e265b2e867@nvidia.com \
    --to=hdoyu@nvidia.com \
    --cc=balbi@ti.com \
    --cc=ccross@android.com \
    --cc=hsweeten@visionengravers.com \
    --cc=jamie@jamieiles.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=olof@lixom.net \
    --cc=rob.herring@calxeda.com \
    --cc=swarren@nvidia.com \
    --cc=swarren@wwwdotorg.org \
    --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.