linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4] ARM: fix debug prints relevant to PCI devices
@ 2014-09-07 10:28 Vidya Sagar
  2014-09-11 19:46 ` vidya sagar
  2014-09-23 13:56 ` Bjorn Helgaas
  0 siblings, 2 replies; 8+ messages in thread
From: Vidya Sagar @ 2014-09-07 10:28 UTC (permalink / raw)
  To: linux, bhelgaas, wangyijing, thierry.reding, jason, will.deacon, swarren
  Cc: kthota, linux-arm-kernel, linux-kernel, Vidya Sagar

From: Vidya Sagar <sagar.tv@gmail.com>

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 <sagar.tv@gmail.com>
---
v4:
* initialized 'has_pcie_dev' to 'false'

v3:
* removed KERN_INFO from pr_info() which was not removed by mistake in previous patch

v2:
* Modified has_pcie_dev type to bool and used pci_is_pcie() instead of pci_pcie_cap()
* replaced printk with pr_info

 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..03c56ba 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;
+	bool has_pcie_dev = false;
 
 	/*
 	 * 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_is_pcie(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 any PCIe devices)
 	 */
-	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)
+		pr_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] 8+ messages in thread

* Re: [PATCH v4] ARM: fix debug prints relevant to PCI devices
  2014-09-07 10:28 [PATCH v4] ARM: fix debug prints relevant to PCI devices Vidya Sagar
@ 2014-09-11 19:46 ` vidya sagar
  2014-09-23 13:56 ` Bjorn Helgaas
  1 sibling, 0 replies; 8+ messages in thread
From: vidya sagar @ 2014-09-11 19:46 UTC (permalink / raw)
  To: linux, bhelgaas, wangyijing, thierry.reding, jason, will.deacon, swarren
  Cc: kthota, linux-arm-kernel, linux-kernel, Vidya Sagar

Anyone ???

On Sun, Sep 7, 2014 at 3:58 PM, Vidya Sagar <sagar.tv@gmail.com> wrote:
> From: Vidya Sagar <sagar.tv@gmail.com>
>
> 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 <sagar.tv@gmail.com>
> ---
> v4:
> * initialized 'has_pcie_dev' to 'false'
>
> v3:
> * removed KERN_INFO from pr_info() which was not removed by mistake in previous patch
>
> v2:
> * Modified has_pcie_dev type to bool and used pci_is_pcie() instead of pci_pcie_cap()
> * replaced printk with pr_info
>
>  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..03c56ba 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;
> +       bool has_pcie_dev = false;
>
>         /*
>          * 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_is_pcie(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 any PCIe devices)
>          */
> -       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)
> +               pr_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	[flat|nested] 8+ messages in thread

* Re: [PATCH v4] ARM: fix debug prints relevant to PCI devices
  2014-09-07 10:28 [PATCH v4] ARM: fix debug prints relevant to PCI devices Vidya Sagar
  2014-09-11 19:46 ` vidya sagar
@ 2014-09-23 13:56 ` Bjorn Helgaas
  2014-09-23 14:06   ` Russell King - ARM Linux
  1 sibling, 1 reply; 8+ messages in thread
From: Bjorn Helgaas @ 2014-09-23 13:56 UTC (permalink / raw)
  To: Vidya Sagar
  Cc: Russell King, Yijing Wang, Thierry Reding, Jason Cooper,
	Will Deacon, Stephen Warren, Krishna Thota, linux-arm,
	linux-kernel

On Sun, Sep 7, 2014 at 4:28 AM, Vidya Sagar <sagar.tv@gmail.com> wrote:
> From: Vidya Sagar <sagar.tv@gmail.com>
>
> 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 <sagar.tv@gmail.com>
> ---
> v4:
> * initialized 'has_pcie_dev' to 'false'
>
> v3:
> * removed KERN_INFO from pr_info() which was not removed by mistake in previous patch
>
> v2:
> * Modified has_pcie_dev type to bool and used pci_is_pcie() instead of pci_pcie_cap()
> * replaced printk with pr_info
>
>  arch/arm/kernel/bios32.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)

This doesn't require any coordination with the PCI core, so I was just
leaving this up to the arch.  But I guess I can at least give you my
opinion :)

> diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
> index 17a26c1..03c56ba 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;
> +       bool has_pcie_dev = false;
>
>         /*
>          * 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_is_pcie(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 any PCIe devices)
>          */
> -       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)
> +               pr_info("PCI: bus%d: Fast back to back transfers %sabled\n",
> +                       bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");

My first choice would be to just drop the printk altogether.

If we want to keep the printk, it should be enough to test "bus->self
&& !pci_is_pcie(bus->self)" to see whether Fast Back-to-Back can be
enabled.

Personally, I would like to see everything in the file converted to
use dev_printk so it's consistent with the PCI core.  That would be a
separate patch, and there might be other instances under arch/arm,
too.

>  }
>  EXPORT_SYMBOL(pcibios_fixup_bus);
>
> --
> 1.8.1.5
>

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

* Re: [PATCH v4] ARM: fix debug prints relevant to PCI devices
  2014-09-23 13:56 ` Bjorn Helgaas
@ 2014-09-23 14:06   ` Russell King - ARM Linux
  2014-09-23 15:04     ` Thierry Reding
  0 siblings, 1 reply; 8+ messages in thread
From: Russell King - ARM Linux @ 2014-09-23 14:06 UTC (permalink / raw)
  To: Bjorn Helgaas
  Cc: Vidya Sagar, Yijing Wang, Thierry Reding, Jason Cooper,
	Will Deacon, Stephen Warren, Krishna Thota, linux-arm,
	linux-kernel

On Tue, Sep 23, 2014 at 07:56:01AM -0600, Bjorn Helgaas wrote:
> This doesn't require any coordination with the PCI core, so I was just
> leaving this up to the arch.  But I guess I can at least give you my
> opinion :)

However, PCI core people have more knowledge of the issues here than I do.

> > diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
> > index 17a26c1..03c56ba 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;
> > +       bool has_pcie_dev = false;
> >
> >         /*
> >          * 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_is_pcie(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 any PCIe devices)
> >          */
> > -       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)
> > +               pr_info("PCI: bus%d: Fast back to back transfers %sabled\n",
> > +                       bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");
> 
> My first choice would be to just drop the printk altogether.

It can be useful information.

> If we want to keep the printk, it should be enough to test "bus->self
> && !pci_is_pcie(bus->self)" to see whether Fast Back-to-Back can be
> enabled.

This is exactly the kind of issue that needs to be picked up by core
PCI people.  I've not looked at PCI stuff for a long time, because PCI
isn't that relevent to me anymore, so I'm not up to speed with any PCI
API changes since about 2.6.xx days, and I'm certainly not knowledgable
of PCIe.  To a certain extent, that can be blamed on ARM's eval boards
either having fundamentally fscked and unusable PCIe, or ARM not
bothering to supply me PCI backplanes to be able to use them.

Isn't bus->self NULL for the PCI root bus, which would be one of the
buses which we /do/ want to print this information for.  So, wouldn't:

	!bus->self || !pci_is_pcie(bus->self)

be more correct?
 
> Personally, I would like to see everything in the file converted to
> use dev_printk so it's consistent with the PCI core.  That would be a
> separate patch, and there might be other instances under arch/arm,
> too.

It /was/ consistent with the PCI core, because the PCI core used to use
this formatting.  If you wish to keep it consistent, please submit a
patch to make it consistent /again/ with the core code.

-- 
FTTC broadband for 0.8mile line: currently at 9.5Mbps down 400kbps up
according to speedtest.net.

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

* Re: [PATCH v4] ARM: fix debug prints relevant to PCI devices
  2014-09-23 14:06   ` Russell King - ARM Linux
@ 2014-09-23 15:04     ` Thierry Reding
  2014-09-23 15:56       ` Bjorn Helgaas
  0 siblings, 1 reply; 8+ messages in thread
From: Thierry Reding @ 2014-09-23 15:04 UTC (permalink / raw)
  To: Russell King - ARM Linux
  Cc: Bjorn Helgaas, Vidya Sagar, Yijing Wang, Jason Cooper,
	Will Deacon, Stephen Warren, Krishna Thota, linux-arm,
	linux-kernel

[-- Attachment #1: Type: text/plain, Size: 2470 bytes --]

On Tue, Sep 23, 2014 at 03:06:35PM +0100, Russell King - ARM Linux wrote:
> On Tue, Sep 23, 2014 at 07:56:01AM -0600, Bjorn Helgaas wrote:
> > This doesn't require any coordination with the PCI core, so I was just
> > leaving this up to the arch.  But I guess I can at least give you my
> > opinion :)
> 
> However, PCI core people have more knowledge of the issues here than I do.
> 
> > > diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
> > > index 17a26c1..03c56ba 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;
> > > +       bool has_pcie_dev = false;
> > >
> > >         /*
> > >          * 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_is_pcie(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 any PCIe devices)
> > >          */
> > > -       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)
> > > +               pr_info("PCI: bus%d: Fast back to back transfers %sabled\n",
> > > +                       bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");
> > 
> > My first choice would be to just drop the printk altogether.
> 
> It can be useful information.
> 
> > If we want to keep the printk, it should be enough to test "bus->self
> > && !pci_is_pcie(bus->self)" to see whether Fast Back-to-Back can be
> > enabled.
> 
> This is exactly the kind of issue that needs to be picked up by core
> PCI people.

I agree. Wouldn't it be more useful to move this into the core?
Disabling fast back-to-back transfers hardly seems like an ARM-
specific "fixup" to me.

Thierry

[-- Attachment #2: Type: application/pgp-signature, Size: 819 bytes --]

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

* Re: [PATCH v4] ARM: fix debug prints relevant to PCI devices
  2014-09-23 15:04     ` Thierry Reding
@ 2014-09-23 15:56       ` Bjorn Helgaas
  0 siblings, 0 replies; 8+ messages in thread
From: Bjorn Helgaas @ 2014-09-23 15:56 UTC (permalink / raw)
  To: Thierry Reding
  Cc: Russell King - ARM Linux, Vidya Sagar, Yijing Wang, Jason Cooper,
	Will Deacon, Stephen Warren, Krishna Thota, linux-arm,
	linux-kernel

On Tue, Sep 23, 2014 at 9:04 AM, Thierry Reding
<thierry.reding@gmail.com> wrote:
> On Tue, Sep 23, 2014 at 03:06:35PM +0100, Russell King - ARM Linux wrote:
>> On Tue, Sep 23, 2014 at 07:56:01AM -0600, Bjorn Helgaas wrote:
>> > This doesn't require any coordination with the PCI core, so I was just
>> > leaving this up to the arch.  But I guess I can at least give you my
>> > opinion :)
>>
>> However, PCI core people have more knowledge of the issues here than I do.
>>
>> > > diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
>> > > index 17a26c1..03c56ba 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;
>> > > +       bool has_pcie_dev = false;
>> > >
>> > >         /*
>> > >          * 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_is_pcie(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 any PCIe devices)
>> > >          */
>> > > -       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)
>> > > +               pr_info("PCI: bus%d: Fast back to back transfers %sabled\n",
>> > > +                       bus->number, (features & PCI_COMMAND_FAST_BACK) ? "en" : "dis");
>> >
>> > My first choice would be to just drop the printk altogether.
>>
>> It can be useful information.
>>
>> > If we want to keep the printk, it should be enough to test "bus->self
>> > && !pci_is_pcie(bus->self)" to see whether Fast Back-to-Back can be
>> > enabled.
>>
>> This is exactly the kind of issue that needs to be picked up by core
>> PCI people.
>
> I agree. Wouldn't it be more useful to move this into the core?
> Disabling fast back-to-back transfers hardly seems like an ARM-
> specific "fixup" to me.

I would definitely support moving this into the core.

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

* [PATCH v4] ARM: fix debug prints relevant to PCI devices
@ 2014-06-22 12:44 Vidya Sagar
  0 siblings, 0 replies; 8+ messages in thread
From: Vidya Sagar @ 2014-06-22 12:44 UTC (permalink / raw)
  To: linux, bhelgaas, wangyijing, thierry.reding, jason, will.deacon,
	swarren, kthota, vidyas
  Cc: sagar.tv, linux-arm-kernel, linux-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>
---
v4:
* initialized 'has_pcie_dev' to 'false'

v3:
* removed KERN_INFO from pr_info() which was not removed by mistake in previous patch

v2:
* Modified has_pcie_dev type to bool and used pci_is_pcie() instead of pci_pcie_cap()
* replaced printk with pr_info

 arch/arm/kernel/bios32.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index 17a26c1..749d1a0 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;
+	bool has_pcie_dev = false;
 
 	/*
 	 * 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_is_pcie(dev);
 		pci_read_config_word(dev, PCI_STATUS, &status);
 
 		/*
@@ -354,9 +357,12 @@ void pcibios_fixup_bus(struct pci_bus *bus)
 
 	/*
 	 * Report what we did for this bus
+	 * (only if the bus doesn't have any PCIe devices)
 	 */
-	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)
+		pr_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] 8+ messages in thread

* [PATCH v4] ARM: fix debug prints relevant to PCI devices
@ 2014-06-19  6:36 Vidya Sagar
  0 siblings, 0 replies; 8+ messages in thread
From: Vidya Sagar @ 2014-06-19  6:36 UTC (permalink / raw)
  To: linux, bhelgaas, wangyijing, thierry.reding, jason, will.deacon,
	swarren, kthota, vidyas
  Cc: sagar.tv, linux-arm-kernel, linux-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>
---
v4:
* initialized 'has_pcie_dev' to 'false'

v3:
* removed KERN_INFO from pr_info() which was not removed by mistake in previous patch

v2:
* Modified has_pcie_dev type to bool and used pci_is_pcie() instead of pci_pcie_cap()
* replaced printk with pr_info

 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..03c56ba 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;
+	bool has_pcie_dev = false;
 
 	/*
 	 * 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_is_pcie(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 any PCIe devices)
 	 */
-	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)
+		pr_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] 8+ messages in thread

end of thread, other threads:[~2014-09-23 15:56 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-07 10:28 [PATCH v4] ARM: fix debug prints relevant to PCI devices Vidya Sagar
2014-09-11 19:46 ` vidya sagar
2014-09-23 13:56 ` Bjorn Helgaas
2014-09-23 14:06   ` Russell King - ARM Linux
2014-09-23 15:04     ` Thierry Reding
2014-09-23 15:56       ` Bjorn Helgaas
  -- strict thread matches above, loose matches on Subject: below --
2014-06-22 12:44 Vidya Sagar
2014-06-19  6:36 Vidya Sagar

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