Commit eaebfcc3 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau/core: add top plumbing

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 2e9a43f9
...@@ -7,6 +7,7 @@ enum nvkm_devidx { ...@@ -7,6 +7,7 @@ enum nvkm_devidx {
NVKM_SUBDEV_PCI, NVKM_SUBDEV_PCI,
NVKM_SUBDEV_VBIOS, NVKM_SUBDEV_VBIOS,
NVKM_SUBDEV_DEVINIT, NVKM_SUBDEV_DEVINIT,
NVKM_SUBDEV_TOP,
NVKM_SUBDEV_IBUS, NVKM_SUBDEV_IBUS,
NVKM_SUBDEV_GPIO, NVKM_SUBDEV_GPIO,
NVKM_SUBDEV_I2C, NVKM_SUBDEV_I2C,
...@@ -131,6 +132,7 @@ struct nvkm_device { ...@@ -131,6 +132,7 @@ struct nvkm_device {
struct nvkm_secboot *secboot; struct nvkm_secboot *secboot;
struct nvkm_therm *therm; struct nvkm_therm *therm;
struct nvkm_timer *timer; struct nvkm_timer *timer;
struct nvkm_top *top;
struct nvkm_volt *volt; struct nvkm_volt *volt;
struct nvkm_engine *bsp; struct nvkm_engine *bsp;
...@@ -200,6 +202,7 @@ struct nvkm_device_chip { ...@@ -200,6 +202,7 @@ struct nvkm_device_chip {
int (*secboot )(struct nvkm_device *, int idx, struct nvkm_secboot **); int (*secboot )(struct nvkm_device *, int idx, struct nvkm_secboot **);
int (*therm )(struct nvkm_device *, int idx, struct nvkm_therm **); int (*therm )(struct nvkm_device *, int idx, struct nvkm_therm **);
int (*timer )(struct nvkm_device *, int idx, struct nvkm_timer **); int (*timer )(struct nvkm_device *, int idx, struct nvkm_timer **);
int (*top )(struct nvkm_device *, int idx, struct nvkm_top **);
int (*volt )(struct nvkm_device *, int idx, struct nvkm_volt **); int (*volt )(struct nvkm_device *, int idx, struct nvkm_volt **);
int (*bsp )(struct nvkm_device *, int idx, struct nvkm_engine **); int (*bsp )(struct nvkm_device *, int idx, struct nvkm_engine **);
......
#ifndef __NVKM_TOP_H__
#define __NVKM_TOP_H__
#include <core/subdev.h>
struct nvkm_top {
struct nvkm_subdev subdev;
};
#endif
...@@ -50,6 +50,7 @@ nvkm_subdev_name[NVKM_SUBDEV_NR] = { ...@@ -50,6 +50,7 @@ nvkm_subdev_name[NVKM_SUBDEV_NR] = {
[NVKM_SUBDEV_SECBOOT ] = "secboot", [NVKM_SUBDEV_SECBOOT ] = "secboot",
[NVKM_SUBDEV_THERM ] = "therm", [NVKM_SUBDEV_THERM ] = "therm",
[NVKM_SUBDEV_TIMER ] = "tmr", [NVKM_SUBDEV_TIMER ] = "tmr",
[NVKM_SUBDEV_TOP ] = "top",
[NVKM_SUBDEV_VOLT ] = "volt", [NVKM_SUBDEV_VOLT ] = "volt",
[NVKM_ENGINE_BSP ] = "bsp", [NVKM_ENGINE_BSP ] = "bsp",
[NVKM_ENGINE_CE0 ] = "ce0", [NVKM_ENGINE_CE0 ] = "ce0",
......
...@@ -2150,6 +2150,7 @@ nvkm_device_subdev(struct nvkm_device *device, int index) ...@@ -2150,6 +2150,7 @@ nvkm_device_subdev(struct nvkm_device *device, int index)
_(SECBOOT , device->secboot , &device->secboot->subdev); _(SECBOOT , device->secboot , &device->secboot->subdev);
_(THERM , device->therm , &device->therm->subdev); _(THERM , device->therm , &device->therm->subdev);
_(TIMER , device->timer , &device->timer->subdev); _(TIMER , device->timer , &device->timer->subdev);
_(TOP , device->top , &device->top->subdev);
_(VOLT , device->volt , &device->volt->subdev); _(VOLT , device->volt , &device->volt->subdev);
#undef _ #undef _
default: default:
...@@ -2604,6 +2605,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, ...@@ -2604,6 +2605,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
_(NVKM_SUBDEV_SECBOOT , secboot); _(NVKM_SUBDEV_SECBOOT , secboot);
_(NVKM_SUBDEV_THERM , therm); _(NVKM_SUBDEV_THERM , therm);
_(NVKM_SUBDEV_TIMER , timer); _(NVKM_SUBDEV_TIMER , timer);
_(NVKM_SUBDEV_TOP , top);
_(NVKM_SUBDEV_VOLT , volt); _(NVKM_SUBDEV_VOLT , volt);
_(NVKM_ENGINE_BSP , bsp); _(NVKM_ENGINE_BSP , bsp);
_(NVKM_ENGINE_CE0 , ce[0]); _(NVKM_ENGINE_CE0 , ce[0]);
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#include <subdev/pmu.h> #include <subdev/pmu.h>
#include <subdev/therm.h> #include <subdev/therm.h>
#include <subdev/timer.h> #include <subdev/timer.h>
#include <subdev/top.h>
#include <subdev/volt.h> #include <subdev/volt.h>
#include <subdev/secboot.h> #include <subdev/secboot.h>
......
...@@ -19,4 +19,5 @@ include $(src)/nvkm/subdev/pmu/Kbuild ...@@ -19,4 +19,5 @@ include $(src)/nvkm/subdev/pmu/Kbuild
include $(src)/nvkm/subdev/secboot/Kbuild include $(src)/nvkm/subdev/secboot/Kbuild
include $(src)/nvkm/subdev/therm/Kbuild include $(src)/nvkm/subdev/therm/Kbuild
include $(src)/nvkm/subdev/timer/Kbuild include $(src)/nvkm/subdev/timer/Kbuild
include $(src)/nvkm/subdev/top/Kbuild
include $(src)/nvkm/subdev/volt/Kbuild include $(src)/nvkm/subdev/volt/Kbuild
#nvkm-y += nvkm/subdev/top/base.o
#ifndef __NVKM_TOP_PRIV_H__
#define __NVKM_TOP_PRIV_H__
#define nvkm_top(p) container_of((p), struct nvkm_top, subdev)
#include <subdev/top.h>
#endif
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