diff mbox

[RFC] PCI: designware: missing *config* reg space

Message ID CAHM4w1krq0vHd6EMpKV-NhHGggDBrrDGZw=V3XLcQDZ7XsXbsQ@mail.gmail.com (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show

Commit Message

Pratyush Anand May 10, 2015, 12:54 p.m. UTC
On Tue, Apr 28, 2015 at 1:57 AM, Murali Karicheri <m-karicheri2@ti.com> wrote:
> All,
>
> I would like to take action to resolve the following print message thrown by
> PCI designware core driver when kernel boots up on Keystone.
>
> [    0.415778] keystone-pcie 21801000.pcie: missing *config* reg space
>
> As per DT documentation introduced by commit
> 4dd964df36d0e548e1806ec2ec275b62d4dc46e8 "PCI: designware: Look for
> configuration space in 'reg', not 'ranges'
>
> This is introduced to stop abusing the range property for defining resource
> for config space. However if the device binding doesn't have
> reg-name = "config" defined, this throws out an unnecessary log message
> at boot which seems to me not right. AFAIK, reg-names is not mandatory.
> config space address in Keystone case is defined using index. So for
> keystone this needs to be fixed.
>
> I propose to add the following check in the designware code to address
> this. Keystone uses an older version of the Designware IP and doesn't have
> the ATU support. So va_cfg0_base and va_cfg1_base are already set up in
> ks_dw_pcie_host_init() before calling dw_pcie_host_init() and points to the
> remote config space address (both same for keystone). I think for other DW
> drivers, these variables are NULL. So add a check and avoid this error
> message for Keystone. Any comments?
>

or may be just following one liner should do the job for you.


~Pratyush
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Murali Karicheri May 11, 2015, 6:11 p.m. UTC | #1
On 05/10/2015 08:54 AM, Pratyush Anand wrote:
> On Tue, Apr 28, 2015 at 1:57 AM, Murali Karicheri <m-karicheri2@ti.com> wrote:
>> All,
>>
>> I would like to take action to resolve the following print message thrown by
>> PCI designware core driver when kernel boots up on Keystone.
>>
>> [    0.415778] keystone-pcie 21801000.pcie: missing *config* reg space
>>
>> As per DT documentation introduced by commit
>> 4dd964df36d0e548e1806ec2ec275b62d4dc46e8 "PCI: designware: Look for
>> configuration space in 'reg', not 'ranges'
>>
>> This is introduced to stop abusing the range property for defining resource
>> for config space. However if the device binding doesn't have
>> reg-name = "config" defined, this throws out an unnecessary log message
>> at boot which seems to me not right. AFAIK, reg-names is not mandatory.
>> config space address in Keystone case is defined using index. So for
>> keystone this needs to be fixed.
>>
>> I propose to add the following check in the designware code to address
>> this. Keystone uses an older version of the Designware IP and doesn't have
>> the ATU support. So va_cfg0_base and va_cfg1_base are already set up in
>> ks_dw_pcie_host_init() before calling dw_pcie_host_init() and points to the
>> remote config space address (both same for keystone). I think for other DW
>> drivers, these variables are NULL. So add a check and avoid this error
>> message for Keystone. Any comments?
>>
> or may be just following one liner should do the job for you.
>
> diff --git a/drivers/pci/host/pcie-designware.c
> b/drivers/pci/host/pcie-designware.c
> index 2e9f84fdd9ce..4ff5308f0cc6 100644
> --- a/drivers/pci/host/pcie-designware.c
> +++ b/drivers/pci/host/pcie-designware.c
> @@ -371,7 +371,7 @@ int dw_pcie_host_init(struct pcie_port *pp)
>                  addrp = of_get_address(np, index, NULL, NULL);
>                  pp->cfg0_mod_base = of_read_number(addrp, ns);
>                  pp->cfg1_mod_base = pp->cfg0_mod_base + pp->cfg0_size;
> -       } else {
> +       } else if (!pp->va_cfg0_base) {
>                  dev_err(pp->dev, "missing *config* reg space\n");
>          }
Yes. That will work. I will post a patch for this.

Murali
>
> ~Pratyush
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/pci/host/pcie-designware.c
b/drivers/pci/host/pcie-designware.c
index 2e9f84fdd9ce..4ff5308f0cc6 100644
--- a/drivers/pci/host/pcie-designware.c
+++ b/drivers/pci/host/pcie-designware.c
@@ -371,7 +371,7 @@  int dw_pcie_host_init(struct pcie_port *pp)
                addrp = of_get_address(np, index, NULL, NULL);
                pp->cfg0_mod_base = of_read_number(addrp, ns);
                pp->cfg1_mod_base = pp->cfg0_mod_base + pp->cfg0_size;
-       } else {
+       } else if (!pp->va_cfg0_base) {
                dev_err(pp->dev, "missing *config* reg space\n");
        }