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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Tue, Apr 28, 2015 at 1:57 AM, Murali Karicheri <m-karicheri2@xxxxxx> 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");
        }


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




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux