linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc/powernv: Remove pnv_pci_probe_mode()
@ 2014-12-11  6:00 Gavin Shan
  2014-12-11 10:22 ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 2+ messages in thread
From: Gavin Shan @ 2014-12-11  6:00 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: Gavin Shan

The callback (ppc_md.pci_probe_mode()) is used to determine if the
child PCI devices of the indicated PCI bus should be probed from
device-tree or hardware. On PowerNV platform, we always expect
probing PCI devices from hardware, which is PowerPC PCI core's
default behaviour. Also, the callback had some delay implemented
based on PHB's device node property "reset-clear-timestamp", which
wasn't exported from skiboot. So we don't need this function and
it's safe to remove it.

Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
---
 arch/powerpc/platforms/powernv/pci.c | 30 ------------------------------
 1 file changed, 30 deletions(-)

diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c
index 4b20f2c..d346df2 100644
--- a/arch/powerpc/platforms/powernv/pci.c
+++ b/arch/powerpc/platforms/powernv/pci.c
@@ -782,35 +782,6 @@ static void pnv_p7ioc_rc_quirk(struct pci_dev *dev)
 }
 DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_IBM, 0x3b9, pnv_p7ioc_rc_quirk);
 
-static int pnv_pci_probe_mode(struct pci_bus *bus)
-{
-	struct pci_controller *hose = pci_bus_to_host(bus);
-	const __be64 *tstamp;
-	u64 now, target;
-
-
-	/* We hijack this as a way to ensure we have waited long
-	 * enough since the reset was lifted on the PCI bus
-	 */
-	if (bus != hose->bus)
-		return PCI_PROBE_NORMAL;
-	tstamp = of_get_property(hose->dn, "reset-clear-timestamp", NULL);
-	if (!tstamp || !*tstamp)
-		return PCI_PROBE_NORMAL;
-
-	now = mftb() / tb_ticks_per_usec;
-	target = (be64_to_cpup(tstamp) / tb_ticks_per_usec)
-		+ PCI_RESET_DELAY_US;
-
-	pr_devel("pci %04d: Reset target: 0x%llx now: 0x%llx\n",
-		 hose->global_number, target, now);
-
-	if (now < target)
-		msleep((target - now + 999) / 1000);
-
-	return PCI_PROBE_NORMAL;
-}
-
 void __init pnv_pci_init(void)
 {
 	struct device_node *np;
@@ -857,7 +828,6 @@ void __init pnv_pci_init(void)
 	ppc_md.tce_build_rm = pnv_tce_build_rm;
 	ppc_md.tce_free_rm = pnv_tce_free_rm;
 	ppc_md.tce_get = pnv_tce_get;
-	ppc_md.pci_probe_mode = pnv_pci_probe_mode;
 	set_pci_dma_ops(&dma_iommu_ops);
 
 	/* Configure MSIs */
-- 
1.8.3.2

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] powerpc/powernv: Remove pnv_pci_probe_mode()
  2014-12-11  6:00 [PATCH] powerpc/powernv: Remove pnv_pci_probe_mode() Gavin Shan
@ 2014-12-11 10:22 ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 2+ messages in thread
From: Benjamin Herrenschmidt @ 2014-12-11 10:22 UTC (permalink / raw)
  To: Gavin Shan; +Cc: linuxppc-dev

On Thu, 2014-12-11 at 17:00 +1100, Gavin Shan wrote:
> The callback (ppc_md.pci_probe_mode()) is used to determine if the
> child PCI devices of the indicated PCI bus should be probed from
> device-tree or hardware. On PowerNV platform, we always expect
> probing PCI devices from hardware, which is PowerPC PCI core's
> default behaviour. Also, the callback had some delay implemented
> based on PHB's device node property "reset-clear-timestamp", which
> wasn't exported from skiboot. So we don't need this function and
> it's safe to remove it.

Yes all that timestamp stuff was related to the old OPAL which is long
gone.

Cheers,
Ben.

> Signed-off-by: Gavin Shan <gwshan@linux.vnet.ibm.com>
> ---
>  arch/powerpc/platforms/powernv/pci.c | 30 ------------------------------
>  1 file changed, 30 deletions(-)
> 
> diff --git a/arch/powerpc/platforms/powernv/pci.c b/arch/powerpc/platforms/powernv/pci.c
> index 4b20f2c..d346df2 100644
> --- a/arch/powerpc/platforms/powernv/pci.c
> +++ b/arch/powerpc/platforms/powernv/pci.c
> @@ -782,35 +782,6 @@ static void pnv_p7ioc_rc_quirk(struct pci_dev *dev)
>  }
>  DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_IBM, 0x3b9, pnv_p7ioc_rc_quirk);
>  
> -static int pnv_pci_probe_mode(struct pci_bus *bus)
> -{
> -	struct pci_controller *hose = pci_bus_to_host(bus);
> -	const __be64 *tstamp;
> -	u64 now, target;
> -
> -
> -	/* We hijack this as a way to ensure we have waited long
> -	 * enough since the reset was lifted on the PCI bus
> -	 */
> -	if (bus != hose->bus)
> -		return PCI_PROBE_NORMAL;
> -	tstamp = of_get_property(hose->dn, "reset-clear-timestamp", NULL);
> -	if (!tstamp || !*tstamp)
> -		return PCI_PROBE_NORMAL;
> -
> -	now = mftb() / tb_ticks_per_usec;
> -	target = (be64_to_cpup(tstamp) / tb_ticks_per_usec)
> -		+ PCI_RESET_DELAY_US;
> -
> -	pr_devel("pci %04d: Reset target: 0x%llx now: 0x%llx\n",
> -		 hose->global_number, target, now);
> -
> -	if (now < target)
> -		msleep((target - now + 999) / 1000);
> -
> -	return PCI_PROBE_NORMAL;
> -}
> -
>  void __init pnv_pci_init(void)
>  {
>  	struct device_node *np;
> @@ -857,7 +828,6 @@ void __init pnv_pci_init(void)
>  	ppc_md.tce_build_rm = pnv_tce_build_rm;
>  	ppc_md.tce_free_rm = pnv_tce_free_rm;
>  	ppc_md.tce_get = pnv_tce_get;
> -	ppc_md.pci_probe_mode = pnv_pci_probe_mode;
>  	set_pci_dma_ops(&dma_iommu_ops);
>  
>  	/* Configure MSIs */

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-12-11 10:23 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-11  6:00 [PATCH] powerpc/powernv: Remove pnv_pci_probe_mode() Gavin Shan
2014-12-11 10:22 ` Benjamin Herrenschmidt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).