[v2] PCI: loongson: Use DECLARE_PCI_FIXUP_EARLY for bridge_class_quirk()
diff mbox series

Message ID 1591925417-27665-1-git-send-email-yangtiezhu@loongson.cn
State Superseded
Delegated to: Lorenzo Pieralisi
Headers show
Series
  • [v2] PCI: loongson: Use DECLARE_PCI_FIXUP_EARLY for bridge_class_quirk()
Related show

Commit Message

Tiezhu Yang June 12, 2020, 1:30 a.m. UTC
Use DECLARE_PCI_FIXUP_EARLY instead of DECLARE_PCI_FIXUP_HEADER
for bridge_class_quirk() in pci-loongson.c, otherwise the fixup
has no effect.

Fixes: 1f58cca5cf2b ("PCI: Add Loongson PCI Controller support")
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---

v2:
  - modify the patch subject used with lower case "loongson"

This patch is based on mips-next tree.

 drivers/pci/controller/pci-loongson.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Tiezhu Yang July 14, 2020, 7:37 a.m. UTC | #1
On 06/12/2020 09:30 AM, Tiezhu Yang wrote:
> Use DECLARE_PCI_FIXUP_EARLY instead of DECLARE_PCI_FIXUP_HEADER
> for bridge_class_quirk() in pci-loongson.c, otherwise the fixup
> has no effect.
>
> Fixes: 1f58cca5cf2b ("PCI: Add Loongson PCI Controller support")
> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> ---
>
> v2:
>    - modify the patch subject used with lower case "loongson"
>
> This patch is based on mips-next tree.
>
>   drivers/pci/controller/pci-loongson.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/pci/controller/pci-loongson.c b/drivers/pci/controller/pci-loongson.c
> index 459009c..58b862a 100644
> --- a/drivers/pci/controller/pci-loongson.c
> +++ b/drivers/pci/controller/pci-loongson.c
> @@ -37,11 +37,11 @@ static void bridge_class_quirk(struct pci_dev *dev)
>   {
>   	dev->class = PCI_CLASS_BRIDGE_PCI << 8;
>   }
> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
> +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
>   			DEV_PCIE_PORT_0, bridge_class_quirk);
> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
> +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
>   			DEV_PCIE_PORT_1, bridge_class_quirk);
> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
> +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
>   			DEV_PCIE_PORT_2, bridge_class_quirk);
>   
>   static void system_bus_quirk(struct pci_dev *pdev)

Hi,

Any comments?
Could you please apply this patch?

Thanks,
Tiezhu
Lorenzo Pieralisi July 14, 2020, 3:08 p.m. UTC | #2
On Tue, Jul 14, 2020 at 03:37:51PM +0800, Tiezhu Yang wrote:
> On 06/12/2020 09:30 AM, Tiezhu Yang wrote:
> > Use DECLARE_PCI_FIXUP_EARLY instead of DECLARE_PCI_FIXUP_HEADER
> > for bridge_class_quirk() in pci-loongson.c, otherwise the fixup
> > has no effect.
> > 
> > Fixes: 1f58cca5cf2b ("PCI: Add Loongson PCI Controller support")
> > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> > ---
> > 
> > v2:
> >    - modify the patch subject used with lower case "loongson"
> > 
> > This patch is based on mips-next tree.
> > 
> >   drivers/pci/controller/pci-loongson.c | 6 +++---
> >   1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/drivers/pci/controller/pci-loongson.c b/drivers/pci/controller/pci-loongson.c
> > index 459009c..58b862a 100644
> > --- a/drivers/pci/controller/pci-loongson.c
> > +++ b/drivers/pci/controller/pci-loongson.c
> > @@ -37,11 +37,11 @@ static void bridge_class_quirk(struct pci_dev *dev)
> >   {
> >   	dev->class = PCI_CLASS_BRIDGE_PCI << 8;
> >   }
> > -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
> > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
> >   			DEV_PCIE_PORT_0, bridge_class_quirk);
> > -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
> > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
> >   			DEV_PCIE_PORT_1, bridge_class_quirk);
> > -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
> > +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
> >   			DEV_PCIE_PORT_2, bridge_class_quirk);
> >   static void system_bus_quirk(struct pci_dev *pdev)
> 
> Hi,
> 
> Any comments?

(1) how was this driver tested if this patch is required ? Is it because
    you are testing on a different platform ?
(2) Please explain why it is needed (I mean describe what happens
    in current code and how this fixes it) in the commit log, it is
    useful for people who may need to tweak this code further

I will apply it then, thanks.

Lorenzo

> Could you please apply this patch?
> 
> Thanks,
> Tiezhu
>
Tiezhu Yang July 15, 2020, 2:36 a.m. UTC | #3
On 07/14/2020 11:08 PM, Lorenzo Pieralisi wrote:
> On Tue, Jul 14, 2020 at 03:37:51PM +0800, Tiezhu Yang wrote:
>> On 06/12/2020 09:30 AM, Tiezhu Yang wrote:
>>> Use DECLARE_PCI_FIXUP_EARLY instead of DECLARE_PCI_FIXUP_HEADER
>>> for bridge_class_quirk() in pci-loongson.c, otherwise the fixup
>>> has no effect.
>>>
>>> Fixes: 1f58cca5cf2b ("PCI: Add Loongson PCI Controller support")
>>> Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
>>> ---
>>>
>>> v2:
>>>     - modify the patch subject used with lower case "loongson"
>>>
>>> This patch is based on mips-next tree.
>>>
>>>    drivers/pci/controller/pci-loongson.c | 6 +++---
>>>    1 file changed, 3 insertions(+), 3 deletions(-)
>>>
>>> diff --git a/drivers/pci/controller/pci-loongson.c b/drivers/pci/controller/pci-loongson.c
>>> index 459009c..58b862a 100644
>>> --- a/drivers/pci/controller/pci-loongson.c
>>> +++ b/drivers/pci/controller/pci-loongson.c
>>> @@ -37,11 +37,11 @@ static void bridge_class_quirk(struct pci_dev *dev)
>>>    {
>>>    	dev->class = PCI_CLASS_BRIDGE_PCI << 8;
>>>    }
>>> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
>>> +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
>>>    			DEV_PCIE_PORT_0, bridge_class_quirk);
>>> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
>>> +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
>>>    			DEV_PCIE_PORT_1, bridge_class_quirk);
>>> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
>>> +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
>>>    			DEV_PCIE_PORT_2, bridge_class_quirk);
>>>    static void system_bus_quirk(struct pci_dev *pdev)
>> Hi,
>>
>> Any comments?

Hi Lorenzo,

Thanks for your reply.

> (1) how was this driver tested if this patch is required ? Is it because
>      you are testing on a different platform ?

According to the datasheet of Loongson LS7A bridge chip, the old
version of Loongson LS7A PCIE port has a hardware bug about PCI
class.

As far as I know, the latest version has already fixed this bug.
I test it on the old version which has hardware bug.

> (2) Please explain why it is needed (I mean describe what happens
>      in current code and how this fixes it) in the commit log, it is
>      useful for people who may need to tweak this code further

OK, this patch is to maintain downward compatibility, I will add
more info to the commit message and then send v3.

Thanks,
Tiezhu

>
> I will apply it then, thanks.
>
> Lorenzo
>
>> Could you please apply this patch?
>>
>> Thanks,
>> Tiezhu
>>

Patch
diff mbox series

diff --git a/drivers/pci/controller/pci-loongson.c b/drivers/pci/controller/pci-loongson.c
index 459009c..58b862a 100644
--- a/drivers/pci/controller/pci-loongson.c
+++ b/drivers/pci/controller/pci-loongson.c
@@ -37,11 +37,11 @@  static void bridge_class_quirk(struct pci_dev *dev)
 {
 	dev->class = PCI_CLASS_BRIDGE_PCI << 8;
 }
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
 			DEV_PCIE_PORT_0, bridge_class_quirk);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
 			DEV_PCIE_PORT_1, bridge_class_quirk);
-DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_LOONGSON,
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_LOONGSON,
 			DEV_PCIE_PORT_2, bridge_class_quirk);
 
 static void system_bus_quirk(struct pci_dev *pdev)