lkml.org 
[lkml]   [2021]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.11 32/67] PCI: Add a REBAR size quirk for Sapphire RX 5600 XT Pulse
    Date
    From: Nirmoy Das <nirmoy.das@amd.com>

    [ Upstream commit 907830b0fc9e374d00f3c83de5e426157b482c01 ]

    RX 5600 XT Pulse advertises support for BAR 0 being 256MB, 512MB,
    or 1GB, but it also supports 2GB, 4GB, and 8GB. Add a rebar
    size quirk so that the BAR 0 is big enough to cover complete VARM.

    Signed-off-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Nirmoy Das <nirmoy.das@amd.com>
    Acked-by: Bjorn Helgaas <bhelgaas@google.com>
    Link: https://patchwork.kernel.org/project/dri-devel/patch/20210107175017.15893-5-nirmoy.das@amd.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/pci/pci.c | 9 ++++++++-
    1 file changed, 8 insertions(+), 1 deletion(-)

    diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
    index 790393d1e3189..ba791165ed194 100644
    --- a/drivers/pci/pci.c
    +++ b/drivers/pci/pci.c
    @@ -3596,7 +3596,14 @@ u32 pci_rebar_get_possible_sizes(struct pci_dev *pdev, int bar)
    return 0;

    pci_read_config_dword(pdev, pos + PCI_REBAR_CAP, &cap);
    - return (cap & PCI_REBAR_CAP_SIZES) >> 4;
    + cap &= PCI_REBAR_CAP_SIZES;
    +
    + /* Sapphire RX 5600 XT Pulse has an invalid cap dword for BAR 0 */
    + if (pdev->vendor == PCI_VENDOR_ID_ATI && pdev->device == 0x731f &&
    + bar == 0 && cap == 0x7000)
    + cap = 0x3f000;
    +
    + return cap >> 4;
    }

    /**
    --
    2.27.0
    \
     
     \ /
      Last update: 2021-02-24 14:46    [W:4.196 / U:0.000 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site