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

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

drm/nouveau: pass nvif_client to nouveau_bo_new() instead of drm_device



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent d2ee3605
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1124,8 +1124,9 @@ nv04_crtc_create(struct drm_device *dev, int crtc_num)
	drm_crtc_helper_add(&nv_crtc->base, &nv04_crtc_helper_funcs);
	drm_mode_crtc_set_gamma_size(&nv_crtc->base, 256);

	ret = nouveau_bo_new(dev, 64*64*4, 0x100, TTM_PL_FLAG_VRAM,
			     0, 0x0000, NULL, NULL, &nv_crtc->cursor.nvbo);
	ret = nouveau_bo_new(&nouveau_drm(dev)->client, 64*64*4, 0x100,
			     TTM_PL_FLAG_VRAM, 0, 0x0000, NULL, NULL,
			     &nv_crtc->cursor.nvbo);
	if (!ret) {
		ret = nouveau_bo_pin(nv_crtc->cursor.nvbo, TTM_PL_FLAG_VRAM, false);
		if (!ret) {
+3 −2
Original line number Diff line number Diff line
@@ -174,12 +174,12 @@ nouveau_bo_fixup_align(struct nouveau_bo *nvbo, u32 flags,
}

int
nouveau_bo_new(struct drm_device *dev, int size, int align,
nouveau_bo_new(struct nouveau_cli *cli, int size, int align,
	       uint32_t flags, uint32_t tile_mode, uint32_t tile_flags,
	       struct sg_table *sg, struct reservation_object *robj,
	       struct nouveau_bo **pnvbo)
{
	struct nouveau_drm *drm = nouveau_drm(dev);
	struct nouveau_drm *drm = nouveau_drm(cli->dev);
	struct nouveau_bo *nvbo;
	size_t acc_size;
	int ret;
@@ -208,6 +208,7 @@ nouveau_bo_new(struct drm_device *dev, int size, int align,
	nvbo->tile_mode = tile_mode;
	nvbo->tile_flags = tile_flags;
	nvbo->bo.bdev = &drm->ttm.bdev;
	nvbo->cli = cli;

	if (!nvxx_device(&drm->device)->func->cpu_coherent)
		nvbo->force_coherent = flags & TTM_PL_FLAG_UNCACHED;
+3 −1
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@ struct nouveau_bo {
	struct list_head vma_list;
	unsigned page_shift;

	struct nouveau_cli *cli;

	u32 tile_mode;
	u32 tile_flags;
	struct nouveau_drm_tile *tile;
@@ -69,7 +71,7 @@ nouveau_bo_ref(struct nouveau_bo *ref, struct nouveau_bo **pnvbo)
extern struct ttm_bo_driver nouveau_bo_driver;

void nouveau_bo_move_init(struct nouveau_drm *);
int  nouveau_bo_new(struct drm_device *, int size, int align, u32 flags,
int  nouveau_bo_new(struct nouveau_cli *, int size, int align, u32 flags,
		    u32 tile_mode, u32 tile_flags, struct sg_table *sg,
		    struct reservation_object *robj,
		    struct nouveau_bo **);
+1 −1
Original line number Diff line number Diff line
@@ -113,7 +113,7 @@ nouveau_channel_prep(struct nouveau_drm *drm, struct nvif_device *device,
	if (nouveau_vram_pushbuf)
		target = TTM_PL_FLAG_VRAM;

	ret = nouveau_bo_new(drm->dev, size, 0, target, 0, 0, NULL, NULL,
	ret = nouveau_bo_new(cli, size, 0, target, 0, 0, NULL, NULL,
			    &chan->push.buffer);
	if (ret == 0) {
		ret = nouveau_bo_pin(chan->push.buffer, target, false);
+1 −1
Original line number Diff line number Diff line
@@ -194,7 +194,7 @@ nouveau_gem_new(struct drm_device *dev, int size, int align, uint32_t domain,
	if (domain & NOUVEAU_GEM_DOMAIN_COHERENT)
		flags |= TTM_PL_FLAG_UNCACHED;

	ret = nouveau_bo_new(dev, size, align, flags, tile_mode,
	ret = nouveau_bo_new(&drm->client, size, align, flags, tile_mode,
			     tile_flags, NULL, NULL, pnvbo);
	if (ret)
		return ret;
Loading