Commit 261fcfa9 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau/kms/nv50-: extend window image data for stereo/planar formats



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 43c181e9
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -162,12 +162,12 @@ struct nv50_wndw_atom {
		u8  kind:7;
		u8  layout:1;
		u8  block:4;
		u32 pitch:20;
		u32 pitch[3];
		u16 w;
		u16 h;

		u32 handle;
		u64 offset;
		u32 handle[6];
		u64 offset[6];
	} image;

	struct {
+3 −3
Original line number Diff line number Diff line
@@ -74,13 +74,13 @@ base507c_image_set(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw)
		evo_data(push, asyw->image.mode << 8 |
			       asyw->image.interval << 4);
		evo_mthd(push, 0x00c0, 1);
		evo_data(push, asyw->image.handle);
		evo_data(push, asyw->image.handle[0]);
		evo_mthd(push, 0x0800, 5);
		evo_data(push, asyw->image.offset >> 8);
		evo_data(push, asyw->image.offset[0] >> 8);
		evo_data(push, 0x00000000);
		evo_data(push, asyw->image.h << 16 | asyw->image.w);
		evo_data(push, asyw->image.layout << 20 |
			       asyw->image.pitch |
			       asyw->image.pitch[0] |
			       asyw->image.block);
		evo_data(push, asyw->image.kind << 16 |
			       asyw->image.format << 8);
+3 −3
Original line number Diff line number Diff line
@@ -30,13 +30,13 @@ base827c_image_set(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw)
		evo_data(push, asyw->image.mode << 8 |
			       asyw->image.interval << 4);
		evo_mthd(push, 0x00c0, 1);
		evo_data(push, asyw->image.handle);
		evo_data(push, asyw->image.handle[0]);
		evo_mthd(push, 0x0800, 5);
		evo_data(push, asyw->image.offset >> 8);
		evo_data(push, asyw->image.offset[0] >> 8);
		evo_data(push, 0x00000000);
		evo_data(push, asyw->image.h << 16 | asyw->image.w);
		evo_data(push, asyw->image.layout << 20 |
			       asyw->image.pitch |
			       asyw->image.pitch[0] |
			       asyw->image.block);
		evo_data(push, asyw->image.format << 8);
		evo_kick(push, &wndw->wndw);
+3 −3
Original line number Diff line number Diff line
@@ -43,13 +43,13 @@ base907c_image_set(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw)
		evo_data(push, asyw->image.mode << 8 |
			       asyw->image.interval << 4);
		evo_mthd(push, 0x00c0, 1);
		evo_data(push, asyw->image.handle);
		evo_data(push, asyw->image.handle[0]);
		evo_mthd(push, 0x0400, 5);
		evo_data(push, asyw->image.offset >> 8);
		evo_data(push, asyw->image.offset[0] >> 8);
		evo_data(push, 0x00000000);
		evo_data(push, asyw->image.h << 16 | asyw->image.w);
		evo_data(push, asyw->image.layout << 24 |
			       asyw->image.pitch |
			       asyw->image.pitch[0] |
			       asyw->image.block);
		evo_data(push, asyw->image.format << 8);
		evo_kick(push, &wndw->wndw);
+1 −1
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ curs507a_prepare(struct nv50_wndw *wndw, struct nv50_head_atom *asyh,
		 struct nv50_wndw_atom *asyw)
{
	u32 handle = nv50_disp(wndw->plane.dev)->core->chan.vram.handle;
	u32 offset = asyw->image.offset;
	u32 offset = asyw->image.offset[0];
	if (asyh->curs.handle != handle || asyh->curs.offset != offset) {
		asyh->curs.handle = handle;
		asyh->curs.offset = offset;
Loading