Commit f83d1c31 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/vfn: add stub subdev for dev_func



Initially for NV_USERMODE class, and Turing/Ampere's new interrupt tree.

v2. fixup for ga103 early merge

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent a7ab200a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: MIT */
NVKM_LAYOUT_ONCE(NVKM_SUBDEV_VFN     , struct nvkm_vfn     ,      vfn)
NVKM_LAYOUT_ONCE(NVKM_SUBDEV_PCI     , struct nvkm_pci     ,      pci)
NVKM_LAYOUT_ONCE(NVKM_SUBDEV_VBIOS   , struct nvkm_bios    ,     bios)
NVKM_LAYOUT_ONCE(NVKM_SUBDEV_DEVINIT , struct nvkm_devinit ,  devinit)
+18 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: MIT */
#ifndef __NVKM_VFN_H__
#define __NVKM_VFN_H__
#include <core/subdev.h>

struct nvkm_vfn {
	const struct nvkm_vfn_func *func;
	struct nvkm_subdev subdev;

	struct {
		u32 priv;
	} addr;
};

int gv100_vfn_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_vfn **);
int tu102_vfn_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_vfn **);
int ga100_vfn_new(struct nvkm_device *, enum nvkm_subdev_type, int, struct nvkm_vfn **);
#endif
+12 −0
Original line number Diff line number Diff line
@@ -2385,6 +2385,7 @@ nv140_chipset = {
	.therm    = { 0x00000001, gp100_therm_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, gk104_top_new },
	.vfn      = { 0x00000001, gv100_vfn_new },
	.ce       = { 0x000001ff, gv100_ce_new },
	.disp     = { 0x00000001, gv100_disp_new },
	.dma      = { 0x00000001, gv100_dma_new },
@@ -2419,6 +2420,7 @@ nv162_chipset = {
	.therm    = { 0x00000001, gp100_therm_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, gk104_top_new },
	.vfn      = { 0x00000001, tu102_vfn_new },
	.ce       = { 0x0000001f, tu102_ce_new },
	.disp     = { 0x00000001, tu102_disp_new },
	.dma      = { 0x00000001, gv100_dma_new },
@@ -2453,6 +2455,7 @@ nv164_chipset = {
	.therm    = { 0x00000001, gp100_therm_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, gk104_top_new },
	.vfn      = { 0x00000001, tu102_vfn_new },
	.ce       = { 0x0000001f, tu102_ce_new },
	.disp     = { 0x00000001, tu102_disp_new },
	.dma      = { 0x00000001, gv100_dma_new },
@@ -2487,6 +2490,7 @@ nv166_chipset = {
	.therm    = { 0x00000001, gp100_therm_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, gk104_top_new },
	.vfn      = { 0x00000001, tu102_vfn_new },
	.ce       = { 0x0000001f, tu102_ce_new },
	.disp     = { 0x00000001, tu102_disp_new },
	.dma      = { 0x00000001, gv100_dma_new },
@@ -2521,6 +2525,7 @@ nv167_chipset = {
	.therm    = { 0x00000001, gp100_therm_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, gk104_top_new },
	.vfn      = { 0x00000001, tu102_vfn_new },
	.ce       = { 0x0000001f, tu102_ce_new },
	.disp     = { 0x00000001, tu102_disp_new },
	.dma      = { 0x00000001, gv100_dma_new },
@@ -2555,6 +2560,7 @@ nv168_chipset = {
	.therm    = { 0x00000001, gp100_therm_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, gk104_top_new },
	.vfn      = { 0x00000001, tu102_vfn_new },
	.ce       = { 0x0000001f, tu102_ce_new },
	.disp     = { 0x00000001, tu102_disp_new },
	.dma      = { 0x00000001, gv100_dma_new },
@@ -2581,6 +2587,7 @@ nv170_chipset = {
	.privring = { 0x00000001, gm200_privring_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, ga100_top_new },
	.vfn      = { 0x00000001, ga100_vfn_new },
};

static const struct nvkm_device_chip
@@ -2599,6 +2606,7 @@ nv172_chipset = {
	.privring = { 0x00000001, gm200_privring_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, ga100_top_new },
	.vfn      = { 0x00000001, ga100_vfn_new },
	.disp     = { 0x00000001, ga102_disp_new },
	.dma      = { 0x00000001, gv100_dma_new },
	.fifo     = { 0x00000001, ga102_fifo_new },
@@ -2620,6 +2628,7 @@ nv173_chipset = {
	.privring = { 0x00000001, gm200_privring_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, ga100_top_new },
	.vfn      = { 0x00000001, ga100_vfn_new },
	.disp     = { 0x00000001, ga102_disp_new },
	.dma      = { 0x00000001, gv100_dma_new },
	.fifo     = { 0x00000001, ga102_fifo_new },
@@ -2641,6 +2650,7 @@ nv174_chipset = {
	.privring = { 0x00000001, gm200_privring_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, ga100_top_new },
	.vfn      = { 0x00000001, ga100_vfn_new },
	.disp     = { 0x00000001, ga102_disp_new },
	.dma      = { 0x00000001, gv100_dma_new },
	.fifo     = { 0x00000001, ga102_fifo_new },
@@ -2662,6 +2672,7 @@ nv176_chipset = {
	.privring = { 0x00000001, gm200_privring_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, ga100_top_new },
	.vfn      = { 0x00000001, ga100_vfn_new },
	.disp     = { 0x00000001, ga102_disp_new },
	.dma      = { 0x00000001, gv100_dma_new },
	.fifo     = { 0x00000001, ga102_fifo_new },
@@ -2683,6 +2694,7 @@ nv177_chipset = {
	.privring = { 0x00000001, gm200_privring_new },
	.timer    = { 0x00000001, gk20a_timer_new },
	.top      = { 0x00000001, ga100_top_new },
	.vfn      = { 0x00000001, ga100_vfn_new },
	.disp     = { 0x00000001, ga102_disp_new },
	.dma      = { 0x00000001, gv100_dma_new },
	.fifo     = { 0x00000001, ga102_fifo_new },
+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include <subdev/therm.h>
#include <subdev/timer.h>
#include <subdev/top.h>
#include <subdev/vfn.h>
#include <subdev/volt.h>

#include <engine/bsp.h>
+1 −0
Original line number Diff line number Diff line
@@ -23,4 +23,5 @@ include $(src)/nvkm/subdev/privring/Kbuild
include $(src)/nvkm/subdev/therm/Kbuild
include $(src)/nvkm/subdev/timer/Kbuild
include $(src)/nvkm/subdev/top/Kbuild
include $(src)/nvkm/subdev/vfn/Kbuild
include $(src)/nvkm/subdev/volt/Kbuild
Loading