lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 714/917] PCI: aardvark: Fix preserving PCI_EXP_RTCTL_CRSSVE flag on emulated bridge
    Date
    From: Pali Rohár <pali@kernel.org>

    [ Upstream commit d419052bc6c60fa4ab2b5a51d5f1e55a66e2b4ff ]

    Commit 43f5c77bcbd2 ("PCI: aardvark: Fix reporting CRS value") started
    using CRSSVE flag for handling CRS responses.

    PCI_EXP_RTCTL_CRSSVE flag is stored only in emulated config space buffer
    and there is handler for PCI_EXP_RTCTL register. So every read operation
    from config space automatically clears CRSSVE flag as it is not defined in
    PCI_EXP_RTCTL read handler.

    Fix this by reading current CRSSVE bit flag from emulated space buffer and
    appending it to PCI_EXP_RTCTL read response.

    Link: https://lore.kernel.org/r/20211005180952.6812-5-kabel@kernel.org
    Fixes: 43f5c77bcbd2 ("PCI: aardvark: Fix reporting CRS value")
    Signed-off-by: Pali Rohár <pali@kernel.org>
    Signed-off-by: Marek Behún <kabel@kernel.org>
    Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Reviewed-by: Marek Behún <kabel@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/pci/controller/pci-aardvark.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/drivers/pci/controller/pci-aardvark.c b/drivers/pci/controller/pci-aardvark.c
    index 589ddb4c50100..b792a779f1059 100644
    --- a/drivers/pci/controller/pci-aardvark.c
    +++ b/drivers/pci/controller/pci-aardvark.c
    @@ -885,6 +885,7 @@ advk_pci_bridge_emul_pcie_conf_read(struct pci_bridge_emul *bridge,
    case PCI_EXP_RTCTL: {
    u32 val = advk_readl(pcie, PCIE_ISR0_MASK_REG);
    *value = (val & PCIE_MSG_PM_PME_MASK) ? 0 : PCI_EXP_RTCTL_PMEIE;
    + *value |= le16_to_cpu(bridge->pcie_conf.rootctl) & PCI_EXP_RTCTL_CRSSVE;
    *value |= PCI_EXP_RTCAP_CRSVIS << 16;
    return PCI_BRIDGE_EMUL_HANDLED;
    }
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-11-16 02:10    [W:3.554 / U:1.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site