[Nouveau] [PATCH 2/5] pci: enable pcie link changes for pascal
Lyude Paul
lyude at redhat.com
Tue May 7 19:17:38 UTC 2019
Reviewed-by: Lyude Paul <lyude at redhat.com>
On Sat, 2019-05-04 at 18:32 +0200, Karol Herbst wrote:
> Signed-off-by: Karol Herbst <kherbst at redhat.com>
> ---
> drm/nouveau/nvkm/subdev/pci/gk104.c | 8 ++++----
> drm/nouveau/nvkm/subdev/pci/gp100.c | 10 ++++++++++
> drm/nouveau/nvkm/subdev/pci/priv.h | 5 +++++
> 3 files changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/drm/nouveau/nvkm/subdev/pci/gk104.c
> b/drm/nouveau/nvkm/subdev/pci/gk104.c
> index e6803050..66489018 100644
> --- a/drm/nouveau/nvkm/subdev/pci/gk104.c
> +++ b/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/drm/nouveau/nvkm/subdev/pci/gp100.c
> b/drm/nouveau/nvkm/subdev/pci/gp100.c
> index 82c5234a..eb19c7a4 100644
> --- a/drm/nouveau/nvkm/subdev/pci/gp100.c
> +++ b/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/drm/nouveau/nvkm/subdev/pci/priv.h
> b/drm/nouveau/nvkm/subdev/pci/priv.h
> index c17f6063..a0d4c007 100644
> --- a/drm/nouveau/nvkm/subdev/pci/priv.h
> +++ b/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
--
Cheers,
Lyude Paul
More information about the Nouveau
mailing list