lkml.org 
[lkml]   [2019]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4/7] drm/nouveau/pci: enable pcie link changes for pascal
    Date
    Signed-off-by: Karol Herbst <kherbst@redhat.com>
    Reviewed-by: Lyude Paul <lyude@redhat.com>
    CC: Alex Hung <alex.hung@canonical.com>
    CC: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    CC: Dave Airlie <airlied@redhat.com>
    CC: Lyude Paul <lyude@redhat.com>
    CC: Ben Skeggs <bskeggs@redhat.com>
    ---
    drivers/gpu/drm/nouveau/nvkm/subdev/pci/gk104.c | 8 ++++----
    drivers/gpu/drm/nouveau/nvkm/subdev/pci/gp100.c | 10 ++++++++++
    drivers/gpu/drm/nouveau/nvkm/subdev/pci/priv.h | 5 +++++
    3 files changed, 19 insertions(+), 4 deletions(-)

    diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/gk104.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/gk104.c
    index e68030507d88..664890185e15 100644
    --- a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/gk104.c
    +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/gk104.c
    @@ -23,7 +23,7 @@
    */
    #include "priv.h"

    -static int
    +int
    gk104_pcie_version_supported(struct nvkm_pci *pci)
    {
    return (nvkm_rd32(pci->subdev.device, 0x8c1c0) & 0x4) == 0x4 ? 2 : 1;
    @@ -108,7 +108,7 @@ gk104_pcie_lnkctl_speed(struct nvkm_pci *pci)
    return -1;
    }

    -static enum nvkm_pcie_speed
    +enum nvkm_pcie_speed
    gk104_pcie_max_speed(struct nvkm_pci *pci)
    {
    u32 max_speed = nvkm_rd32(pci->subdev.device, 0x8c1c0) & 0x300000;
    @@ -146,7 +146,7 @@ gk104_pcie_set_link_speed(struct nvkm_pci *pci, enum nvkm_pcie_speed speed)
    nvkm_mask(device, 0x8c040, 0x1, 0x1);
    }

    -static int
    +int
    gk104_pcie_init(struct nvkm_pci * pci)
    {
    enum nvkm_pcie_speed lnkctl_speed, max_speed, cap_speed;
    @@ -178,7 +178,7 @@ gk104_pcie_init(struct nvkm_pci * pci)
    return 0;
    }

    -static int
    +int
    gk104_pcie_set_link(struct nvkm_pci *pci, enum nvkm_pcie_speed speed, u8 width)
    {
    struct nvkm_subdev *subdev = &pci->subdev;
    diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/gp100.c b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/gp100.c
    index 82c5234a06ff..eb19c7a44561 100644
    --- a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/gp100.c
    +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/gp100.c
    @@ -35,6 +35,16 @@ gp100_pci_func = {
    .wr08 = nv40_pci_wr08,
    .wr32 = nv40_pci_wr32,
    .msi_rearm = gp100_pci_msi_rearm,
    +
    + .pcie.init = gk104_pcie_init,
    + .pcie.set_link = gk104_pcie_set_link,
    +
    + .pcie.max_speed = gk104_pcie_max_speed,
    + .pcie.cur_speed = g84_pcie_cur_speed,
    +
    + .pcie.set_version = gf100_pcie_set_version,
    + .pcie.version = gf100_pcie_version,
    + .pcie.version_supported = gk104_pcie_version_supported,
    };

    int
    diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/priv.h b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/priv.h
    index 7009aad86b6e..162ed5dc6fc3 100644
    --- a/drivers/gpu/drm/nouveau/nvkm/subdev/pci/priv.h
    +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pci/priv.h
    @@ -54,6 +54,11 @@ int gf100_pcie_cap_speed(struct nvkm_pci *);
    int gf100_pcie_init(struct nvkm_pci *);
    int gf100_pcie_set_link(struct nvkm_pci *, enum nvkm_pcie_speed, u8);

    +int gk104_pcie_init(struct nvkm_pci *);
    +int gk104_pcie_set_link(struct nvkm_pci *, enum nvkm_pcie_speed, u8 width);
    +enum nvkm_pcie_speed gk104_pcie_max_speed(struct nvkm_pci *);
    +int gk104_pcie_version_supported(struct nvkm_pci *);
    +
    int nvkm_pcie_oneinit(struct nvkm_pci *);
    int nvkm_pcie_init(struct nvkm_pci *);
    #endif
    --
    2.21.0
    \
     
     \ /
      Last update: 2019-08-14 23:32    [W:4.669 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site