xref: /linux/drivers/gpu/drm/nouveau/include/nvkm/subdev/pci.h (revision b85d45947951d23cb22d90caecf4c1eb81342c96)
1 #ifndef __NVKM_PCI_H__
2 #define __NVKM_PCI_H__
3 #include <core/subdev.h>
4 
5 struct nvkm_pci {
6 	const struct nvkm_pci_func *func;
7 	struct nvkm_subdev subdev;
8 	struct pci_dev *pdev;
9 	int irq;
10 
11 	struct {
12 		struct agp_bridge_data *bridge;
13 		u32 mode;
14 		u64 base;
15 		u64 size;
16 		int mtrr;
17 		bool cma;
18 		bool acquired;
19 	} agp;
20 
21 	bool msi;
22 };
23 
24 u32 nvkm_pci_rd32(struct nvkm_pci *, u16 addr);
25 void nvkm_pci_wr08(struct nvkm_pci *, u16 addr, u8 data);
26 void nvkm_pci_wr32(struct nvkm_pci *, u16 addr, u32 data);
27 void nvkm_pci_rom_shadow(struct nvkm_pci *, bool shadow);
28 
29 int nv04_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
30 int nv40_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
31 int nv4c_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
32 int nv50_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
33 int gf100_pci_new(struct nvkm_device *, int, struct nvkm_pci **);
34 #endif
35