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

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
...@@ -23,6 +23,7 @@ enum nvkm_devidx { ...@@ -23,6 +23,7 @@ enum nvkm_devidx {
NVKM_SUBDEV_MMU, NVKM_SUBDEV_MMU,
NVKM_SUBDEV_BAR, NVKM_SUBDEV_BAR,
NVKM_SUBDEV_FAULT, NVKM_SUBDEV_FAULT,
NVKM_SUBDEV_ACR,
NVKM_SUBDEV_PMU, NVKM_SUBDEV_PMU,
NVKM_SUBDEV_VOLT, NVKM_SUBDEV_VOLT,
NVKM_SUBDEV_ICCSENSE, NVKM_SUBDEV_ICCSENSE,
...@@ -129,6 +130,7 @@ struct nvkm_device { ...@@ -129,6 +130,7 @@ struct nvkm_device {
struct notifier_block nb; struct notifier_block nb;
} acpi; } acpi;
struct nvkm_acr *acr;
struct nvkm_bar *bar; struct nvkm_bar *bar;
struct nvkm_bios *bios; struct nvkm_bios *bios;
struct nvkm_bus *bus; struct nvkm_bus *bus;
...@@ -202,6 +204,7 @@ struct nvkm_device_quirk { ...@@ -202,6 +204,7 @@ struct nvkm_device_quirk {
struct nvkm_device_chip { struct nvkm_device_chip {
const char *name; const char *name;
int (*acr )(struct nvkm_device *, int idx, struct nvkm_acr **);
int (*bar )(struct nvkm_device *, int idx, struct nvkm_bar **); int (*bar )(struct nvkm_device *, int idx, struct nvkm_bar **);
int (*bios )(struct nvkm_device *, int idx, struct nvkm_bios **); int (*bios )(struct nvkm_device *, int idx, struct nvkm_bios **);
int (*bus )(struct nvkm_device *, int idx, struct nvkm_bus **); int (*bus )(struct nvkm_device *, int idx, struct nvkm_bus **);
......
/* 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
...@@ -30,6 +30,7 @@ static struct lock_class_key nvkm_subdev_lock_class[NVKM_SUBDEV_NR]; ...@@ -30,6 +30,7 @@ static struct lock_class_key nvkm_subdev_lock_class[NVKM_SUBDEV_NR];
const char * const char *
nvkm_subdev_name[NVKM_SUBDEV_NR] = { nvkm_subdev_name[NVKM_SUBDEV_NR] = {
[NVKM_SUBDEV_ACR ] = "acr",
[NVKM_SUBDEV_BAR ] = "bar", [NVKM_SUBDEV_BAR ] = "bar",
[NVKM_SUBDEV_VBIOS ] = "bios", [NVKM_SUBDEV_VBIOS ] = "bios",
[NVKM_SUBDEV_BUS ] = "bus", [NVKM_SUBDEV_BUS ] = "bus",
......
...@@ -2638,6 +2638,7 @@ nvkm_device_subdev(struct nvkm_device *device, int index) ...@@ -2638,6 +2638,7 @@ nvkm_device_subdev(struct nvkm_device *device, int index)
switch (index) { switch (index) {
#define _(n,p,m) case NVKM_SUBDEV_##n: if (p) return (m); break #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); _(BAR , device->bar , &device->bar->subdev);
_(VBIOS , device->bios , &device->bios->subdev); _(VBIOS , device->bios , &device->bios->subdev);
_(BUS , device->bus , &device->bus->subdev); _(BUS , device->bus , &device->bus->subdev);
...@@ -3144,6 +3145,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, ...@@ -3144,6 +3145,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
} \ } \
break break
switch (i) { switch (i) {
_(NVKM_SUBDEV_ACR , acr);
_(NVKM_SUBDEV_BAR , bar); _(NVKM_SUBDEV_BAR , bar);
_(NVKM_SUBDEV_VBIOS , bios); _(NVKM_SUBDEV_VBIOS , bios);
_(NVKM_SUBDEV_BUS , bus); _(NVKM_SUBDEV_BUS , bus);
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#define __NVKM_DEVICE_PRIV_H__ #define __NVKM_DEVICE_PRIV_H__
#include <core/device.h> #include <core/device.h>
#include <subdev/acr.h>
#include <subdev/bar.h> #include <subdev/bar.h>
#include <subdev/bios.h> #include <subdev/bios.h>
#include <subdev/bus.h> #include <subdev/bus.h>
......
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
include $(src)/nvkm/subdev/acr/Kbuild
include $(src)/nvkm/subdev/bar/Kbuild include $(src)/nvkm/subdev/bar/Kbuild
include $(src)/nvkm/subdev/bios/Kbuild include $(src)/nvkm/subdev/bios/Kbuild
include $(src)/nvkm/subdev/bus/Kbuild include $(src)/nvkm/subdev/bus/Kbuild
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment