lkml.org 
[lkml]   [2020]   [Jul]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v6 08/14] PCI: cadence: Fix updating Vendor ID and Subsystem Vendor ID register
    Date
    Commit 1b79c5284439 ("PCI: cadence: Add host driver for Cadence PCIe
    controller") in order to update Vendor ID, directly wrote to
    PCI_VENDOR_ID register. However PCI_VENDOR_ID in root port configuration
    space is read-only register and writing to it will have no effect.
    Use local management register to configure Vendor ID and Subsystem Vendor
    ID.

    Fixes: 1b79c5284439 ("PCI: cadence: Add host driver for Cadence PCIe controller")
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
    ---
    drivers/pci/controller/cadence/pcie-cadence-host.c | 9 +++++++--
    1 file changed, 7 insertions(+), 2 deletions(-)

    diff --git a/drivers/pci/controller/cadence/pcie-cadence-host.c b/drivers/pci/controller/cadence/pcie-cadence-host.c
    index 10127ea71b83..8935f7a37e5a 100644
    --- a/drivers/pci/controller/cadence/pcie-cadence-host.c
    +++ b/drivers/pci/controller/cadence/pcie-cadence-host.c
    @@ -82,6 +82,7 @@ static int cdns_pcie_host_init_root_port(struct cdns_pcie_rc *rc)
    {
    struct cdns_pcie *pcie = &rc->pcie;
    u32 value, ctrl;
    + u32 id;

    /*
    * Set the root complex BAR configuration register:
    @@ -101,8 +102,12 @@ static int cdns_pcie_host_init_root_port(struct cdns_pcie_rc *rc)
    cdns_pcie_writel(pcie, CDNS_PCIE_LM_RC_BAR_CFG, value);

    /* Set root port configuration space */
    - if (rc->vendor_id != 0xffff)
    - cdns_pcie_rp_writew(pcie, PCI_VENDOR_ID, rc->vendor_id);
    + if (rc->vendor_id != 0xffff) {
    + id = CDNS_PCIE_LM_ID_VENDOR(rc->vendor_id) |
    + CDNS_PCIE_LM_ID_SUBSYS(rc->vendor_id);
    + cdns_pcie_writel(pcie, CDNS_PCIE_LM_ID, id);
    + }
    +
    if (rc->device_id != 0xffff)
    cdns_pcie_rp_writew(pcie, PCI_DEVICE_ID, rc->device_id);

    --
    2.17.1
    \
     
     \ /
      Last update: 2020-07-08 11:31    [W:4.343 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site