All of lore.kernel.org
 help / color / mirror / Atom feed
From: Suman Anna <s-anna@ti.com>
To: Tony Lindgren <tony@atomide.com>, Kishon Vijay Abraham I <kishon@ti.com>
Cc: 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>, <nsekhar@ti.com>
Subject: Re: [PATCH v3 3/3] pci: dra7xx: use pdata callbacks to perform reset
Date: Wed, 27 Jan 2016 12:16:17 -0600	[thread overview]
Message-ID: <56A90971.4020409@ti.com> (raw)
In-Reply-To: <20160127173104.GQ19432@atomide.com>

Hi Tony,

On 01/27/2016 11:31 AM, Tony Lindgren wrote:
> * Kishon Vijay Abraham I <kishon@ti.com> [160114 06:12]:
>> Use assert/deassert callbacks populated in the platform data to
>> to perform reset of PCIe.
>>
>> Use these callbacks until a reset controller driver is
>> is available in the kernel to reset PCIe.
> ...
> 
>> --- a/drivers/pci/host/pci-dra7xx.c
>> +++ b/drivers/pci/host/pci-dra7xx.c
>> @@ -347,6 +404,10 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev)
>>  	enum of_gpio_flags flags;
>>  	unsigned long gpio_flags;
>>  
>> +	ret = dra7xx_pcie_reset(pdev);
>> +	if (ret)
>> +		return ret;
>> +
>>  	dra7xx = devm_kzalloc(dev, sizeof(*dra7xx), GFP_KERNEL);
>>  	if (!dra7xx)
>>  		return -ENOMEM;
> 
> With the hwmod data properly configured the reset already happens
> for the device by the bus driver, the hwmod code in this case?
> 
>> @@ -457,6 +518,7 @@ static int __exit dra7xx_pcie_remove(struct platform_device *pdev)
>>  	struct pcie_port *pp = &dra7xx->pp;
>>  	struct device *dev = &pdev->dev;
>>  	int count = dra7xx->phy_count;
>> +	int ret;
>>  
>>  	if (pp->irq_domain)
>>  		irq_domain_remove(pp->irq_domain);
>> @@ -467,6 +529,10 @@ static int __exit dra7xx_pcie_remove(struct platform_device *pdev)
>>  		phy_exit(dra7xx->phy[count]);
>>  	}
>>  
>> +	ret = dra7xx_pcie_assert_reset(pdev);
>> +	if (ret < 0)
>> +		return ret;
>> +
>>  	return 0;
>>  }
> 
> Why do you need another reset here? Can't you just implement PM runtime
> in the driver and do the usual pm_runtime_put_sync followed by
> pm_runtime_disable?

The omap_hwmod_enable/disable code does not deal with hardresets (PRCM
reset lines) and so the pm_runtime_get_sync/put_sync only end up dealing
with clocks, and we need to invoke the reset functions separately.
Modules with softresets in SYSCONFIG are ok, as they are dealt with
properly.

> Basically I'm wondering how come we need these platform data callbacks
> at all.

The hardresets are controlled through the
omap_device_assert(deassert)_hardreset functions, and since these are
limited to mach-omap2, we are invoking them through platform data callbacks.


regards
Suman

WARNING: multiple messages have this Message-ID (diff)
From: Suman Anna <s-anna@ti.com>
To: Tony Lindgren <tony@atomide.com>, Kishon Vijay Abraham I <kishon@ti.com>
Cc: 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, nsekhar@ti.com
Subject: Re: [PATCH v3 3/3] pci: dra7xx: use pdata callbacks to perform reset
Date: Wed, 27 Jan 2016 12:16:17 -0600	[thread overview]
Message-ID: <56A90971.4020409@ti.com> (raw)
In-Reply-To: <20160127173104.GQ19432@atomide.com>

Hi Tony,

On 01/27/2016 11:31 AM, Tony Lindgren wrote:
> * Kishon Vijay Abraham I <kishon@ti.com> [160114 06:12]:
>> Use assert/deassert callbacks populated in the platform data to
>> to perform reset of PCIe.
>>
>> Use these callbacks until a reset controller driver is
>> is available in the kernel to reset PCIe.
> ...
> 
>> --- a/drivers/pci/host/pci-dra7xx.c
>> +++ b/drivers/pci/host/pci-dra7xx.c
>> @@ -347,6 +404,10 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev)
>>  	enum of_gpio_flags flags;
>>  	unsigned long gpio_flags;
>>  
>> +	ret = dra7xx_pcie_reset(pdev);
>> +	if (ret)
>> +		return ret;
>> +
>>  	dra7xx = devm_kzalloc(dev, sizeof(*dra7xx), GFP_KERNEL);
>>  	if (!dra7xx)
>>  		return -ENOMEM;
> 
> With the hwmod data properly configured the reset already happens
> for the device by the bus driver, the hwmod code in this case?
> 
>> @@ -457,6 +518,7 @@ static int __exit dra7xx_pcie_remove(struct platform_device *pdev)
>>  	struct pcie_port *pp = &dra7xx->pp;
>>  	struct device *dev = &pdev->dev;
>>  	int count = dra7xx->phy_count;
>> +	int ret;
>>  
>>  	if (pp->irq_domain)
>>  		irq_domain_remove(pp->irq_domain);
>> @@ -467,6 +529,10 @@ static int __exit dra7xx_pcie_remove(struct platform_device *pdev)
>>  		phy_exit(dra7xx->phy[count]);
>>  	}
>>  
>> +	ret = dra7xx_pcie_assert_reset(pdev);
>> +	if (ret < 0)
>> +		return ret;
>> +
>>  	return 0;
>>  }
> 
> Why do you need another reset here? Can't you just implement PM runtime
> in the driver and do the usual pm_runtime_put_sync followed by
> pm_runtime_disable?

The omap_hwmod_enable/disable code does not deal with hardresets (PRCM
reset lines) and so the pm_runtime_get_sync/put_sync only end up dealing
with clocks, and we need to invoke the reset functions separately.
Modules with softresets in SYSCONFIG are ok, as they are dealt with
properly.

> Basically I'm wondering how come we need these platform data callbacks
> at all.

The hardresets are controlled through the
omap_device_assert(deassert)_hardreset functions, and since these are
limited to mach-omap2, we are invoking them through platform data callbacks.


regards
Suman

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: Wed, 27 Jan 2016 12:16:17 -0600	[thread overview]
Message-ID: <56A90971.4020409@ti.com> (raw)
In-Reply-To: <20160127173104.GQ19432@atomide.com>

Hi Tony,

On 01/27/2016 11:31 AM, Tony Lindgren wrote:
> * Kishon Vijay Abraham I <kishon@ti.com> [160114 06:12]:
>> Use assert/deassert callbacks populated in the platform data to
>> to perform reset of PCIe.
>>
>> Use these callbacks until a reset controller driver is
>> is available in the kernel to reset PCIe.
> ...
> 
>> --- a/drivers/pci/host/pci-dra7xx.c
>> +++ b/drivers/pci/host/pci-dra7xx.c
>> @@ -347,6 +404,10 @@ static int __init dra7xx_pcie_probe(struct platform_device *pdev)
>>  	enum of_gpio_flags flags;
>>  	unsigned long gpio_flags;
>>  
>> +	ret = dra7xx_pcie_reset(pdev);
>> +	if (ret)
>> +		return ret;
>> +
>>  	dra7xx = devm_kzalloc(dev, sizeof(*dra7xx), GFP_KERNEL);
>>  	if (!dra7xx)
>>  		return -ENOMEM;
> 
> With the hwmod data properly configured the reset already happens
> for the device by the bus driver, the hwmod code in this case?
> 
>> @@ -457,6 +518,7 @@ static int __exit dra7xx_pcie_remove(struct platform_device *pdev)
>>  	struct pcie_port *pp = &dra7xx->pp;
>>  	struct device *dev = &pdev->dev;
>>  	int count = dra7xx->phy_count;
>> +	int ret;
>>  
>>  	if (pp->irq_domain)
>>  		irq_domain_remove(pp->irq_domain);
>> @@ -467,6 +529,10 @@ static int __exit dra7xx_pcie_remove(struct platform_device *pdev)
>>  		phy_exit(dra7xx->phy[count]);
>>  	}
>>  
>> +	ret = dra7xx_pcie_assert_reset(pdev);
>> +	if (ret < 0)
>> +		return ret;
>> +
>>  	return 0;
>>  }
> 
> Why do you need another reset here? Can't you just implement PM runtime
> in the driver and do the usual pm_runtime_put_sync followed by
> pm_runtime_disable?

The omap_hwmod_enable/disable code does not deal with hardresets (PRCM
reset lines) and so the pm_runtime_get_sync/put_sync only end up dealing
with clocks, and we need to invoke the reset functions separately.
Modules with softresets in SYSCONFIG are ok, as they are dealt with
properly.

> Basically I'm wondering how come we need these platform data callbacks
> at all.

The hardresets are controlled through the
omap_device_assert(deassert)_hardreset functions, and since these are
limited to mach-omap2, we are invoking them through platform data callbacks.


regards
Suman

  reply	other threads:[~2016-01-27 18:17 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 [this message]
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
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=56A90971.4020409@ti.com \
    --to=s-anna@ti.com \
    --cc=bhelgaas@google.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=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.