Commit 31bef57f authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/core: define ACR subdev



This will replace the current SECBOOT subdev for handling firmware on
secure falcons.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent f25709f9
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@ enum nvkm_devidx {
	NVKM_SUBDEV_MMU,
	NVKM_SUBDEV_BAR,
	NVKM_SUBDEV_FAULT,
	NVKM_SUBDEV_ACR,
	NVKM_SUBDEV_PMU,
	NVKM_SUBDEV_VOLT,
	NVKM_SUBDEV_ICCSENSE,
@@ -129,6 +130,7 @@ struct nvkm_device {
		struct notifier_block nb;
	} acpi;

	struct nvkm_acr *acr;
	struct nvkm_bar *bar;
	struct nvkm_bios *bios;
	struct nvkm_bus *bus;
@@ -202,6 +204,7 @@ struct nvkm_device_quirk {
struct nvkm_device_chip {
	const char *name;

	int (*acr     )(struct nvkm_device *, int idx, struct nvkm_acr **);
	int (*bar     )(struct nvkm_device *, int idx, struct nvkm_bar **);
	int (*bios    )(struct nvkm_device *, int idx, struct nvkm_bios **);
	int (*bus     )(struct nvkm_device *, int idx, struct nvkm_bus **);
+10 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: MIT */
#ifndef __NVKM_ACR_H__
#define __NVKM_ACR_H__
#define nvkm_acr(p) container_of((p), struct nvkm_acr, subdev)
#include <core/subdev.h>

struct nvkm_acr {
	struct nvkm_subdev subdev;
};
#endif
+1 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ static struct lock_class_key nvkm_subdev_lock_class[NVKM_SUBDEV_NR];

const char *
nvkm_subdev_name[NVKM_SUBDEV_NR] = {
	[NVKM_SUBDEV_ACR     ] = "acr",
	[NVKM_SUBDEV_BAR     ] = "bar",
	[NVKM_SUBDEV_VBIOS   ] = "bios",
	[NVKM_SUBDEV_BUS     ] = "bus",
+2 −0
Original line number Diff line number Diff line
@@ -2638,6 +2638,7 @@ nvkm_device_subdev(struct nvkm_device *device, int index)

	switch (index) {
#define _(n,p,m) case NVKM_SUBDEV_##n: if (p) return (m); break
	_(ACR     , device->acr     , &device->acr->subdev);
	_(BAR     , device->bar     , &device->bar->subdev);
	_(VBIOS   , device->bios    , &device->bios->subdev);
	_(BUS     , device->bus     , &device->bus->subdev);
@@ -3144,6 +3145,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
	}                                                                      \
	break
		switch (i) {
		_(NVKM_SUBDEV_ACR     ,      acr);
		_(NVKM_SUBDEV_BAR     ,      bar);
		_(NVKM_SUBDEV_VBIOS   ,     bios);
		_(NVKM_SUBDEV_BUS     ,      bus);
+1 −0
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
#define __NVKM_DEVICE_PRIV_H__
#include <core/device.h>

#include <subdev/acr.h>
#include <subdev/bar.h>
#include <subdev/bios.h>
#include <subdev/bus.h>
Loading