From: Suman Anna <s-anna@ti.com>
To: Paul Walmsley <paul@pwsan.com>, Sekhar Nori <nsekhar@ti.com>,
Kishon Vijay Abraham I <kishon@ti.com>,
d-gerlach@ti.com
Cc: Tony Lindgren <tony@atomide.com>,
Bjorn Helgaas <bhelgaas@google.com>,
richardcochran@gmail.com, Russell King <linux@arm.linux.org.uk>,
linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 3/3] pci: dra7xx: use pdata callbacks to perform reset
Date: Thu, 18 Feb 2016 12:27:57 -0600 [thread overview]
Message-ID: <56C60D2D.2060108@ti.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1602181721530.4792@utopia.booyaka.com>
On 02/18/2016 11:23 AM, Paul Walmsley wrote:
>
> On Thu, 18 Feb 2016, Sekhar Nori wrote:
>
>> On Friday 12 February 2016 10:50 PM, Suman Anna wrote:
>>> Sekhar,
>>> Will you be following up with above suggestion since Kishon is gonna be out?
>>
>> Alright, noticed this action for me :) Went through the thread, and
>> looks like this is what we want to see?
>
> Thanks Sekhar. Did you try the driver unbind/bind sequence a few times to
> ensure that works, per Suman's earlier E-mail?
Should work since the assert/deassert is now out of the driver
probe/remove path and is done only at init time, but will let Sekhar
confirm this.
>
> Suman, is there any further testing that you are planning to do on this
> patch?
No, nothing on my side, since this is now localized to PCIe and only on
DRA7xx. I will relook at your custom flags solution when I consolidate
the reset for OMAP IOMMUs and remoteprocs, that looks promising to
remove the pdata quirks for resets or dependencies in drivers against a
reset API.
>
> - Paul
>
>
>>
>> Thanks,
>> Sekhar
>>
>> ---8<---
>> >From e3ba368f2235e1bf38a22ba8ea4e5c12aaafda19 Mon Sep 17 00:00:00 2001
>> Message-Id: <e3ba368f2235e1bf38a22ba8ea4e5c12aaafda19.1455803758.git.nsekhar@ti.com>
>> From: Sekhar Nori <nsekhar@ti.com>
>> Date: Thu, 18 Feb 2016 16:49:56 +0530
>> Subject: [PATCH 1/1] ARM: DRA7: hwmod: Add custom reset handler for PCIeSS
>>
>> Add a custom reset handler for DRA7x PCIeSS. This
>> handler is required to deassert PCIe hardreset lines
>> after they have been asserted.
>>
>> This enables the PCIe driver to access registers after
>> PCIeSS has been runtime enabled without having to
>> deassert hardreset lines itself.
>>
>> With this patch applied, used lspci to make sure
>> connected PCIe device enumerates on DRA74x and DRA72x
>> EVMs.
Yep, this is what I had in mind. Glad that it resolves the issue.
>>
>> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
>> ---
>> Applies to tag for-v4.6/omap-hwmod-a of Paul W's tree.
>>
>> arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 23 +++++++++++++++++++++++
>> 1 file changed, 23 insertions(+)
>>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
>> index b61355e2a771..252b74633e31 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
>> @@ -1526,8 +1526,31 @@ static struct omap_hwmod dra7xx_ocp2scp3_hwmod = {
>> *
>> */
>>
>> +/*
>> + * As noted in documentation for _reset() in omap_hwmod.c, the stock reset
>> + * functionality of OMAP HWMOD layer does not deassert the hardreset lines
>> + * associated with an IP automatically leaving the driver to handle that
>> + * by itself. This does not work for PCIeSS which needs the reset lines
>> + * deasserted for the driver to start accessing registers.
>> + *
>> + * We use a PCIeSS HWMOD class specific reset handler to deassert the hardreset
>> + * lines after asserting them.
>> + */
>> +static int dra7xx_pciess_reset(struct omap_hwmod *oh)
>> +{
>> + int i;
>> +
>> + for (i = 0; i < oh->rst_lines_cnt; i++) {
>> + omap_hwmod_assert_hardreset(oh, oh->rst_lines[i].name);
>> + omap_hwmod_deassert_hardreset(oh, oh->rst_lines[i].name);
Hmm, ignoring return values??
regards
Suman
>> + }
>> +
>> + return 0;
>> +}
>> +
>> static struct omap_hwmod_class dra7xx_pciess_hwmod_class = {
>> .name = "pcie",
>> + .reset = dra7xx_pciess_reset,
>> };
>>
>> /* pcie1 */
>> --
>> 2.6.3
>>
>>
>
>
> - Paul
>
WARNING: multiple messages have this Message-ID (diff)
From: s-anna@ti.com (Suman Anna)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 3/3] pci: dra7xx: use pdata callbacks to perform reset
Date: Thu, 18 Feb 2016 12:27:57 -0600 [thread overview]
Message-ID: <56C60D2D.2060108@ti.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1602181721530.4792@utopia.booyaka.com>
On 02/18/2016 11:23 AM, Paul Walmsley wrote:
>
> On Thu, 18 Feb 2016, Sekhar Nori wrote:
>
>> On Friday 12 February 2016 10:50 PM, Suman Anna wrote:
>>> Sekhar,
>>> Will you be following up with above suggestion since Kishon is gonna be out?
>>
>> Alright, noticed this action for me :) Went through the thread, and
>> looks like this is what we want to see?
>
> Thanks Sekhar. Did you try the driver unbind/bind sequence a few times to
> ensure that works, per Suman's earlier E-mail?
Should work since the assert/deassert is now out of the driver
probe/remove path and is done only at init time, but will let Sekhar
confirm this.
>
> Suman, is there any further testing that you are planning to do on this
> patch?
No, nothing on my side, since this is now localized to PCIe and only on
DRA7xx. I will relook at your custom flags solution when I consolidate
the reset for OMAP IOMMUs and remoteprocs, that looks promising to
remove the pdata quirks for resets or dependencies in drivers against a
reset API.
>
> - Paul
>
>
>>
>> Thanks,
>> Sekhar
>>
>> ---8<---
>> >From e3ba368f2235e1bf38a22ba8ea4e5c12aaafda19 Mon Sep 17 00:00:00 2001
>> Message-Id: <e3ba368f2235e1bf38a22ba8ea4e5c12aaafda19.1455803758.git.nsekhar@ti.com>
>> From: Sekhar Nori <nsekhar@ti.com>
>> Date: Thu, 18 Feb 2016 16:49:56 +0530
>> Subject: [PATCH 1/1] ARM: DRA7: hwmod: Add custom reset handler for PCIeSS
>>
>> Add a custom reset handler for DRA7x PCIeSS. This
>> handler is required to deassert PCIe hardreset lines
>> after they have been asserted.
>>
>> This enables the PCIe driver to access registers after
>> PCIeSS has been runtime enabled without having to
>> deassert hardreset lines itself.
>>
>> With this patch applied, used lspci to make sure
>> connected PCIe device enumerates on DRA74x and DRA72x
>> EVMs.
Yep, this is what I had in mind. Glad that it resolves the issue.
>>
>> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
>> ---
>> Applies to tag for-v4.6/omap-hwmod-a of Paul W's tree.
>>
>> arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 23 +++++++++++++++++++++++
>> 1 file changed, 23 insertions(+)
>>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
>> index b61355e2a771..252b74633e31 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
>> @@ -1526,8 +1526,31 @@ static struct omap_hwmod dra7xx_ocp2scp3_hwmod = {
>> *
>> */
>>
>> +/*
>> + * As noted in documentation for _reset() in omap_hwmod.c, the stock reset
>> + * functionality of OMAP HWMOD layer does not deassert the hardreset lines
>> + * associated with an IP automatically leaving the driver to handle that
>> + * by itself. This does not work for PCIeSS which needs the reset lines
>> + * deasserted for the driver to start accessing registers.
>> + *
>> + * We use a PCIeSS HWMOD class specific reset handler to deassert the hardreset
>> + * lines after asserting them.
>> + */
>> +static int dra7xx_pciess_reset(struct omap_hwmod *oh)
>> +{
>> + int i;
>> +
>> + for (i = 0; i < oh->rst_lines_cnt; i++) {
>> + omap_hwmod_assert_hardreset(oh, oh->rst_lines[i].name);
>> + omap_hwmod_deassert_hardreset(oh, oh->rst_lines[i].name);
Hmm, ignoring return values??
regards
Suman
>> + }
>> +
>> + return 0;
>> +}
>> +
>> static struct omap_hwmod_class dra7xx_pciess_hwmod_class = {
>> .name = "pcie",
>> + .reset = dra7xx_pciess_reset,
>> };
>>
>> /* pcie1 */
>> --
>> 2.6.3
>>
>>
>
>
> - Paul
>
WARNING: multiple messages have this Message-ID (diff)
From: Suman Anna <s-anna@ti.com>
To: Paul Walmsley <paul@pwsan.com>, Sekhar Nori <nsekhar@ti.com>,
Kishon Vijay Abraham I <kishon@ti.com>, <d-gerlach@ti.com>
Cc: Tony Lindgren <tony@atomide.com>,
Bjorn Helgaas <bhelgaas@google.com>, <richardcochran@gmail.com>,
Russell King <linux@arm.linux.org.uk>,
<linux-omap@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH v3 3/3] pci: dra7xx: use pdata callbacks to perform reset
Date: Thu, 18 Feb 2016 12:27:57 -0600 [thread overview]
Message-ID: <56C60D2D.2060108@ti.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1602181721530.4792@utopia.booyaka.com>
On 02/18/2016 11:23 AM, Paul Walmsley wrote:
>
> On Thu, 18 Feb 2016, Sekhar Nori wrote:
>
>> On Friday 12 February 2016 10:50 PM, Suman Anna wrote:
>>> Sekhar,
>>> Will you be following up with above suggestion since Kishon is gonna be out?
>>
>> Alright, noticed this action for me :) Went through the thread, and
>> looks like this is what we want to see?
>
> Thanks Sekhar. Did you try the driver unbind/bind sequence a few times to
> ensure that works, per Suman's earlier E-mail?
Should work since the assert/deassert is now out of the driver
probe/remove path and is done only at init time, but will let Sekhar
confirm this.
>
> Suman, is there any further testing that you are planning to do on this
> patch?
No, nothing on my side, since this is now localized to PCIe and only on
DRA7xx. I will relook at your custom flags solution when I consolidate
the reset for OMAP IOMMUs and remoteprocs, that looks promising to
remove the pdata quirks for resets or dependencies in drivers against a
reset API.
>
> - Paul
>
>
>>
>> Thanks,
>> Sekhar
>>
>> ---8<---
>> >From e3ba368f2235e1bf38a22ba8ea4e5c12aaafda19 Mon Sep 17 00:00:00 2001
>> Message-Id: <e3ba368f2235e1bf38a22ba8ea4e5c12aaafda19.1455803758.git.nsekhar@ti.com>
>> From: Sekhar Nori <nsekhar@ti.com>
>> Date: Thu, 18 Feb 2016 16:49:56 +0530
>> Subject: [PATCH 1/1] ARM: DRA7: hwmod: Add custom reset handler for PCIeSS
>>
>> Add a custom reset handler for DRA7x PCIeSS. This
>> handler is required to deassert PCIe hardreset lines
>> after they have been asserted.
>>
>> This enables the PCIe driver to access registers after
>> PCIeSS has been runtime enabled without having to
>> deassert hardreset lines itself.
>>
>> With this patch applied, used lspci to make sure
>> connected PCIe device enumerates on DRA74x and DRA72x
>> EVMs.
Yep, this is what I had in mind. Glad that it resolves the issue.
>>
>> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
>> ---
>> Applies to tag for-v4.6/omap-hwmod-a of Paul W's tree.
>>
>> arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 23 +++++++++++++++++++++++
>> 1 file changed, 23 insertions(+)
>>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
>> index b61355e2a771..252b74633e31 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod_7xx_data.c
>> @@ -1526,8 +1526,31 @@ static struct omap_hwmod dra7xx_ocp2scp3_hwmod = {
>> *
>> */
>>
>> +/*
>> + * As noted in documentation for _reset() in omap_hwmod.c, the stock reset
>> + * functionality of OMAP HWMOD layer does not deassert the hardreset lines
>> + * associated with an IP automatically leaving the driver to handle that
>> + * by itself. This does not work for PCIeSS which needs the reset lines
>> + * deasserted for the driver to start accessing registers.
>> + *
>> + * We use a PCIeSS HWMOD class specific reset handler to deassert the hardreset
>> + * lines after asserting them.
>> + */
>> +static int dra7xx_pciess_reset(struct omap_hwmod *oh)
>> +{
>> + int i;
>> +
>> + for (i = 0; i < oh->rst_lines_cnt; i++) {
>> + omap_hwmod_assert_hardreset(oh, oh->rst_lines[i].name);
>> + omap_hwmod_deassert_hardreset(oh, oh->rst_lines[i].name);
Hmm, ignoring return values??
regards
Suman
>> + }
>> +
>> + return 0;
>> +}
>> +
>> static struct omap_hwmod_class dra7xx_pciess_hwmod_class = {
>> .name = "pcie",
>> + .reset = dra7xx_pciess_reset,
>> };
>>
>> /* pcie1 */
>> --
>> 2.6.3
>>
>>
>
>
> - Paul
>
next prev parent reply other threads:[~2016-02-18 18:27 UTC|newest]
Thread overview: 120+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-14 14:11 [PATCH v3 0/3] dra7xx: get pcie working in mainline Kishon Vijay Abraham I
2016-01-14 14:11 ` Kishon Vijay Abraham I
2016-01-14 14:11 ` Kishon Vijay Abraham I
2016-01-14 14:11 ` [PATCH v3 1/3] ARM: DRA7: hwmod: Add reset data for PCIe Kishon Vijay Abraham I
2016-01-14 14:11 ` Kishon Vijay Abraham I
2016-01-14 14:11 ` Kishon Vijay Abraham I
2016-02-08 1:50 ` Paul Walmsley
2016-02-08 1:50 ` Paul Walmsley
2016-01-14 14:11 ` [PATCH v3 2/3] ARM: DRA7: add pdata-quirks to do reset of PCIe Kishon Vijay Abraham I
2016-01-14 14:11 ` Kishon Vijay Abraham I
2016-01-14 14:11 ` Kishon Vijay Abraham I
2016-01-15 19:19 ` Suman Anna
2016-01-15 19:19 ` Suman Anna
2016-01-15 19:19 ` Suman Anna
2016-01-15 19:22 ` Tony Lindgren
2016-01-15 19:22 ` Tony Lindgren
2016-01-15 19:41 ` Suman Anna
2016-01-15 19:41 ` Suman Anna
2016-01-15 19:41 ` Suman Anna
2016-01-18 9:12 ` Sekhar Nori
2016-01-18 9:12 ` Sekhar Nori
2016-01-18 9:12 ` Sekhar Nori
2016-01-27 17:23 ` Tony Lindgren
2016-01-27 17:23 ` Tony Lindgren
2016-01-14 14:11 ` [PATCH v3 3/3] pci: dra7xx: use pdata callbacks to perform reset Kishon Vijay Abraham I
2016-01-14 14:11 ` Kishon Vijay Abraham I
2016-01-14 14:11 ` Kishon Vijay Abraham I
2016-01-27 17:31 ` Tony Lindgren
2016-01-27 17:31 ` Tony Lindgren
2016-01-27 18:16 ` Suman Anna
2016-01-27 18:16 ` Suman Anna
2016-01-27 18:16 ` Suman Anna
2016-01-27 18:56 ` Tony Lindgren
2016-01-27 18:56 ` Tony Lindgren
2016-01-27 23:16 ` Suman Anna
2016-01-27 23:16 ` Suman Anna
2016-01-27 23:16 ` Suman Anna
2016-01-28 18:31 ` Tony Lindgren
2016-01-28 18:31 ` Tony Lindgren
2016-01-28 21:15 ` Suman Anna
2016-01-28 21:15 ` Suman Anna
2016-01-28 21:15 ` Suman Anna
2016-02-02 10:40 ` Kishon Vijay Abraham I
2016-02-02 10:40 ` Kishon Vijay Abraham I
2016-02-02 10:40 ` Kishon Vijay Abraham I
2016-02-05 4:19 ` Kishon Vijay Abraham I
2016-02-05 4:19 ` Kishon Vijay Abraham I
2016-02-05 4:19 ` Kishon Vijay Abraham I
2016-02-08 2:48 ` Paul Walmsley
2016-02-08 2:48 ` Paul Walmsley
2016-02-08 20:56 ` Suman Anna
2016-02-08 20:56 ` Suman Anna
2016-02-08 20:56 ` Suman Anna
2016-02-09 8:49 ` Paul Walmsley
2016-02-09 8:49 ` Paul Walmsley
2016-02-09 17:40 ` Suman Anna
2016-02-09 17:40 ` Suman Anna
2016-02-09 17:40 ` Suman Anna
2016-02-09 19:36 ` Paul Walmsley
2016-02-09 19:36 ` Paul Walmsley
2016-02-10 1:42 ` Suman Anna
2016-02-10 1:42 ` Suman Anna
2016-02-10 1:42 ` Suman Anna
2016-02-10 5:38 ` Kishon Vijay Abraham I
2016-02-10 5:38 ` Kishon Vijay Abraham I
2016-02-10 5:38 ` Kishon Vijay Abraham I
2016-02-11 19:27 ` Paul Walmsley
2016-02-11 19:27 ` Paul Walmsley
2016-02-11 22:04 ` Suman Anna
2016-02-11 22:04 ` Suman Anna
2016-02-11 22:04 ` Suman Anna
2016-02-12 6:49 ` Kishon Vijay Abraham I
2016-02-12 6:49 ` Kishon Vijay Abraham I
2016-02-12 6:49 ` Kishon Vijay Abraham I
2016-02-12 17:20 ` Suman Anna
2016-02-12 17:20 ` Suman Anna
2016-02-12 17:20 ` Suman Anna
2016-02-18 14:21 ` Sekhar Nori
2016-02-18 14:21 ` Sekhar Nori
2016-02-18 14:21 ` Sekhar Nori
2016-02-18 17:23 ` Paul Walmsley
2016-02-18 17:23 ` Paul Walmsley
2016-02-18 18:27 ` Suman Anna [this message]
2016-02-18 18:27 ` Suman Anna
2016-02-18 18:27 ` Suman Anna
2016-02-22 6:18 ` Kishon Vijay Abraham I
2016-02-22 6:18 ` Kishon Vijay Abraham I
2016-02-22 6:18 ` Kishon Vijay Abraham I
2016-02-22 6:31 ` Paul Walmsley
2016-02-22 6:31 ` Paul Walmsley
2016-02-22 9:55 ` Kishon Vijay Abraham I
2016-02-22 9:55 ` Kishon Vijay Abraham I
2016-02-22 9:55 ` Kishon Vijay Abraham I
2016-02-23 11:57 ` Kishon Vijay Abraham I
2016-02-23 11:57 ` Kishon Vijay Abraham I
2016-02-23 11:57 ` Kishon Vijay Abraham I
2016-02-23 18:28 ` Paul Walmsley
2016-02-23 18:28 ` Paul Walmsley
2016-02-24 6:21 ` Kishon Vijay Abraham I
2016-02-24 6:21 ` Kishon Vijay Abraham I
2016-02-24 6:21 ` Kishon Vijay Abraham I
2016-03-01 8:25 ` Paul Walmsley
2016-03-01 8:25 ` Paul Walmsley
2016-03-01 11:55 ` Kishon Vijay Abraham I
2016-03-01 11:55 ` Kishon Vijay Abraham I
2016-03-01 11:55 ` Kishon Vijay Abraham I
2016-03-01 14:43 ` Bjorn Helgaas
2016-03-01 14:43 ` Bjorn Helgaas
2016-03-01 16:55 ` Suman Anna
2016-03-01 16:55 ` Suman Anna
2016-03-01 16:55 ` Suman Anna
2016-02-11 20:43 ` Suman Anna
2016-02-11 20:43 ` Suman Anna
2016-02-11 20:43 ` Suman Anna
2016-02-12 6:55 ` Kishon Vijay Abraham I
2016-02-12 6:55 ` Kishon Vijay Abraham I
2016-02-12 6:55 ` Kishon Vijay Abraham I
2016-02-10 5:36 ` Kishon Vijay Abraham I
2016-02-10 5:36 ` Kishon Vijay Abraham I
2016-02-10 5:36 ` Kishon Vijay Abraham I
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=56C60D2D.2060108@ti.com \
--to=s-anna@ti.com \
--cc=bhelgaas@google.com \
--cc=d-gerlach@ti.com \
--cc=kishon@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
--cc=nsekhar@ti.com \
--cc=paul@pwsan.com \
--cc=richardcochran@gmail.com \
--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.