Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 21a5ace0 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/disp/nv04: implement a base display object class



Will be used for upcoming vblank event interfaces.

Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 51fa0253
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -23,6 +23,7 @@
 */

#include <engine/disp.h>
#include <core/class.h>

struct nv04_disp_priv {
	struct nouveau_disp base;
@@ -30,6 +31,7 @@ struct nv04_disp_priv {

static struct nouveau_oclass
nv04_disp_sclass[] = {
	{ NV04_DISP_CLASS, &nouveau_object_ofuncs },
	{},
};

+8 −0
Original line number Diff line number Diff line
@@ -154,6 +154,14 @@ struct nve0_channel_ind_class {
	u32 engine;
};

/* 0046: NV04_DISP
 */

#define NV04_DISP_CLASS                                              0x00000046

struct nv04_display_class {
};

/* 5070: NV50_DISP
 * 8270: NV84_DISP
 * 8370: NVA0_DISP
+8 −0
Original line number Diff line number Diff line
@@ -22,6 +22,9 @@
 * Author: Ben Skeggs
 */

#include <core/object.h>
#include <core/class.h>

#include <drm/drmP.h>
#include <drm/drm_crtc_helper.h>

@@ -71,6 +74,11 @@ nv04_display_create(struct drm_device *dev)

	nouveau_hw_save_vga_fonts(dev, 1);

	ret = nouveau_object_new(nv_object(drm), NVDRM_DEVICE, 0xd1500000,
				 NV04_DISP_CLASS, NULL, 0, &disp->core);
	if (ret)
		return ret;

	nv04_crtc_create(dev, 0);
	if (nv_two_heads(dev))
		nv04_crtc_create(dev, 1);
+1 −0
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ struct nv04_display {
	struct nv04_mode_state saved_reg;
	uint32_t saved_vga_font[4][16384];
	uint32_t dac_users[4];
	struct nouveau_object *core;
};

static inline struct nv04_display *