root/drivers/gpu/drm/nouveau/include/nvkm/subdev/pci.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: MIT */
   2 #ifndef __NVKM_PCI_H__
   3 #define __NVKM_PCI_H__
   4 #include <core/subdev.h>
   5 
   6 enum nvkm_pcie_speed {
   7         NVKM_PCIE_SPEED_2_5,
   8         NVKM_PCIE_SPEED_5_0,
   9         NVKM_PCIE_SPEED_8_0,
  10 };
  11 
  12 struct nvkm_pci {
  13         const struct nvkm_pci_func *func;
  14         struct nvkm_subdev subdev;
  15         struct pci_dev *pdev;
  16         int irq;
  17 
  18         struct {
  19                 struct agp_bridge_data *bridge;
  20                 u32 mode;
  21                 u64 base;
  22                 u64 size;
  23                 int mtrr;
  24                 bool cma;
  25                 bool acquired;
  26         } agp;
  27 
  28         struct {
  29                 enum nvkm_pcie_speed speed;
  30                 u8 width;
  31         } pcie;
  32 
  33         bool msi;
  34 };
  35 
  36 u32 nvkm_pci_rd32(struct nvkm_pci *, u16 addr);
  37 void nvkm_pci_wr08(struct nvkm_pci *, u16 addr, u8 data);
  38 void nvkm_pci_wr32(struct nvkm_pci *, u16 addr, u32 data);
  39 u32 nvkm_pci_mask(struct nvkm_pci *, u16 addr, u32 mask, u32 value);
  40 void nvkm_pci_rom_shadow(struct nvkm_pci *, bool shadow);
  41 
  42 int nv04_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
  43 int nv40_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
  44 int nv46_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
  45 int nv4c_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
  46 int g84_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
  47 int g92_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
  48 int g94_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
  49 int gf100_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
  50 int gf106_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
  51 int gk104_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
  52 int gp100_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
  53 
  54 /* pcie functions */
  55 int nvkm_pcie_set_link(struct nvkm_pci *, enum nvkm_pcie_speed, u8 width);
  56 #endif

/* [<][>][^][v][top][bottom][index][help] */