linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ARM: fix debug prints relevant to PCI devices
@ 2014-06-04 19:17 Vidya Sagar
  2014-06-04 19:29 ` Stephen Warren
  2014-06-04 19:32 ` Sergei Shtylyov
  0 siblings, 2 replies; 5+ messages in thread
From: Vidya Sagar @ 2014-06-04 19:17 UTC (permalink / raw)
  To: linux-arm-kernel

As per PCIe spec, fast back-to-back transactions feature
is not applicable to PCIe devices. Hence, do not print
that fast back-to-back trasactions are disabled when
there is a PCIe device found on the bus

Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
---
 arch/arm/kernel/bios32.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index 17a26c1..95ad3fb 100644
--- a/arch/arm/kernel/bios32.c
+++ b/arch/arm/kernel/bios32.c
@@ -290,6 +290,7 @@ void pcibios_fixup_bus(struct pci_bus *bus)
 {
 	struct pci_dev *dev;
 	u16 features = PCI_COMMAND_SERR | PCI_COMMAND_PARITY | PCI_COMMAND_FAST_BACK;
+	int has_pcie_dev = 0;
 
 	/*
 	 * Walk the devices on this bus, working out what we can
@@ -298,6 +299,8 @@ void pcibios_fixup_bus(struct pci_bus *bus)
 	list_for_each_entry(dev, &bus->devices, bus_list) {
 		u16 status;
 
+		if (!has_pcie_dev)
+			has_pcie_dev = pci_pcie_cap(dev);
 		pci_read_config_word(dev, PCI_STATUS, &status);
 
 		/*
@@ -354,9 +357,11 @@ void pcibios_fixup_bus(struct pci_bus *bus)
 
 	/*
 	 * Report what we did for this bus
+	 * (only if the bus doesn't have even one PCIe device)
 	 */
-	printk(KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n",
-		bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");
+	if (!has_pcie_dev)
+		printk(KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n",
+			bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");
 }
 EXPORT_SYMBOL(pcibios_fixup_bus);
 
-- 
1.8.1.5

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

* [PATCH] ARM: fix debug prints relevant to PCI devices
  2014-06-04 19:17 [PATCH] ARM: fix debug prints relevant to PCI devices Vidya Sagar
@ 2014-06-04 19:29 ` Stephen Warren
  2014-06-04 21:04   ` Jason Gunthorpe
  2014-06-04 23:46   ` Russell King - ARM Linux
  2014-06-04 19:32 ` Sergei Shtylyov
  1 sibling, 2 replies; 5+ messages in thread
From: Stephen Warren @ 2014-06-04 19:29 UTC (permalink / raw)
  To: linux-arm-kernel

On 06/04/2014 01:17 PM, Vidya Sagar wrote:
> As per PCIe spec, fast back-to-back transactions feature
> is not applicable to PCIe devices. Hence, do not print
> that fast back-to-back trasactions are disabled when
> there is a PCIe device found on the bus

> @@ -298,6 +299,8 @@ void pcibios_fixup_bus(struct pci_bus *bus)
>  	list_for_each_entry(dev, &bus->devices, bus_list) {
>  		u16 status;
>  
> +		if (!has_pcie_dev)
> +			has_pcie_dev = pci_pcie_cap(dev);

This sets the flag if any PCIe device is detected, even if regular PCI
devices are also detected. I assume the two can be mixed on a bus if
there's a bridge (although perhaps that would be separate buses, and
child buses don't get traversed by this function?)

>  	/*
>  	 * Report what we did for this bus
> +	 * (only if the bus doesn't have even one PCIe device)
>  	 */
> -	printk(KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n",
> -		bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");
> +	if (!has_pcie_dev)
> +		printk(KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n",
> +			bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");

So, this skips printing the message if any PCIe device was found.

Given that the message is relevant to PCI devices, more than being not
relevant to PCIe devices, perhaps the logic should be inverted, so that
the message is only printed if a PCI/non-PCIe device /is/ found, i.e.:

...
has_pci_device |= !pci_pcie_cap(dev);
...
if (has_pci_device)
	printk(...);

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

* [PATCH] ARM: fix debug prints relevant to PCI devices
  2014-06-04 19:17 [PATCH] ARM: fix debug prints relevant to PCI devices Vidya Sagar
  2014-06-04 19:29 ` Stephen Warren
@ 2014-06-04 19:32 ` Sergei Shtylyov
  1 sibling, 0 replies; 5+ messages in thread
From: Sergei Shtylyov @ 2014-06-04 19:32 UTC (permalink / raw)
  To: linux-arm-kernel

Hello.

On 06/04/2014 11:17 PM, Vidya Sagar wrote:

> As per PCIe spec, fast back-to-back transactions feature
> is not applicable to PCIe devices. Hence, do not print
> that fast back-to-back trasactions are disabled when
> there is a PCIe device found on the bus

> Signed-off-by: Vidya Sagar <vidyas@nvidia.com>
> ---
>   arch/arm/kernel/bios32.c | 9 +++++++--
>   1 file changed, 7 insertions(+), 2 deletions(-)

> diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
> index 17a26c1..95ad3fb 100644
> --- a/arch/arm/kernel/bios32.c
> +++ b/arch/arm/kernel/bios32.c
[...]
> @@ -354,9 +357,11 @@ void pcibios_fixup_bus(struct pci_bus *bus)
>
>   	/*
>   	 * Report what we did for this bus
> +	 * (only if the bus doesn't have even one PCIe device)
>   	 */
> -	printk(KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n",
> -		bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");
> +	if (!has_pcie_dev)
> +		printk(KERN_INFO "PCI: bus%d: Fast back to back transfers %sabled\n",

    Time to change this to pr_info()...

> +			bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");
>   }
>   EXPORT_SYMBOL(pcibios_fixup_bus);

WBR, Sergei

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

* [PATCH] ARM: fix debug prints relevant to PCI devices
  2014-06-04 19:29 ` Stephen Warren
@ 2014-06-04 21:04   ` Jason Gunthorpe
  2014-06-04 23:46   ` Russell King - ARM Linux
  1 sibling, 0 replies; 5+ messages in thread
From: Jason Gunthorpe @ 2014-06-04 21:04 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jun 04, 2014 at 01:29:14PM -0600, Stephen Warren wrote:
> On 06/04/2014 01:17 PM, Vidya Sagar wrote:
> > As per PCIe spec, fast back-to-back transactions feature
> > is not applicable to PCIe devices. Hence, do not print
> > that fast back-to-back trasactions are disabled when
> > there is a PCIe device found on the bus
> 
> > @@ -298,6 +299,8 @@ void pcibios_fixup_bus(struct pci_bus *bus)
> >  	list_for_each_entry(dev, &bus->devices, bus_list) {
> >  		u16 status;
> >  
> > +		if (!has_pcie_dev)
> > +			has_pcie_dev = pci_pcie_cap(dev);
> 
> This sets the flag if any PCIe device is detected, even if regular PCI
> devices are also detected. I assume the two can be mixed on a bus if
> there's a bridge (although perhaps that would be separate buses, and
> child buses don't get traversed by this function?)

I like the concept, and the logic looks OK as is (though pci_is_pcie
is a better choice). The function is called on a bus number basis, and
it isn't physically possible to mix technology on a single bus number.

Jason

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

* [PATCH] ARM: fix debug prints relevant to PCI devices
  2014-06-04 19:29 ` Stephen Warren
  2014-06-04 21:04   ` Jason Gunthorpe
@ 2014-06-04 23:46   ` Russell King - ARM Linux
  1 sibling, 0 replies; 5+ messages in thread
From: Russell King - ARM Linux @ 2014-06-04 23:46 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Jun 04, 2014 at 01:29:14PM -0600, Stephen Warren wrote:
> On 06/04/2014 01:17 PM, Vidya Sagar wrote:
> > As per PCIe spec, fast back-to-back transactions feature
> > is not applicable to PCIe devices. Hence, do not print
> > that fast back-to-back trasactions are disabled when
> > there is a PCIe device found on the bus
> 
> > @@ -298,6 +299,8 @@ void pcibios_fixup_bus(struct pci_bus *bus)
> >  	list_for_each_entry(dev, &bus->devices, bus_list) {
> >  		u16 status;
> >  
> > +		if (!has_pcie_dev)
> > +			has_pcie_dev = pci_pcie_cap(dev);
> 
> This sets the flag if any PCIe device is detected, even if regular PCI
> devices are also detected. I assume the two can be mixed on a bus if
> there's a bridge (although perhaps that would be separate buses, and
> child buses don't get traversed by this function?)

This function gets caller per PCI bus - if there's a bridge between
(which there should be between PCIe and PCI) then they are by definition
separate buses.  (I'm guessing that there aren't transparent bridges
between PCI and PCIe.)

-- 
FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.

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

end of thread, other threads:[~2014-06-04 23:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-04 19:17 [PATCH] ARM: fix debug prints relevant to PCI devices Vidya Sagar
2014-06-04 19:29 ` Stephen Warren
2014-06-04 21:04   ` Jason Gunthorpe
2014-06-04 23:46   ` Russell King - ARM Linux
2014-06-04 19:32 ` Sergei Shtylyov

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).