base507c.c (34838908f62a0160d2c12c12be6c3be910d17b85) base507c.c (6d6e11e2844015a5f6c3d0373966fd4a459add8b)
1/*
2 * Copyright 2018 Red Hat Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the

--- 42 unchanged lines hidden (view full) ---

51 evo_mthd(push, 0x0084, 1);
52 evo_data(push, 0x00000000);
53 evo_mthd(push, 0x00c0, 1);
54 evo_data(push, 0x00000000);
55 evo_kick(push, &wndw->wndw);
56 }
57}
58
1/*
2 * Copyright 2018 Red Hat Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the

--- 42 unchanged lines hidden (view full) ---

51 evo_mthd(push, 0x0084, 1);
52 evo_data(push, 0x00000000);
53 evo_mthd(push, 0x00c0, 1);
54 evo_data(push, 0x00000000);
55 evo_kick(push, &wndw->wndw);
56 }
57}
58
59static void
59static int
60base507c_image_set(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw)
61{
60base507c_image_set(struct nv50_wndw *wndw, struct nv50_wndw_atom *asyw)
61{
62 u32 *push;
63 if ((push = evo_wait(&wndw->wndw, 13))) {
64 evo_mthd(push, 0x0084, 1);
65 evo_data(push, asyw->image.mode << 8 |
66 asyw->image.interval << 4);
67 evo_mthd(push, 0x00c0, 1);
68 evo_data(push, asyw->image.handle[0]);
69 if (asyw->image.format == 0xca) {
70 evo_mthd(push, 0x0110, 2);
71 evo_data(push, 1);
72 evo_data(push, 0x6400);
73 } else {
74 evo_mthd(push, 0x0110, 2);
75 evo_data(push, 0);
76 evo_data(push, 0);
77 }
78 evo_mthd(push, 0x0800, 5);
79 evo_data(push, asyw->image.offset[0] >> 8);
80 evo_data(push, 0x00000000);
81 evo_data(push, asyw->image.h << 16 | asyw->image.w);
82 evo_data(push, asyw->image.layout << 20 |
83 (asyw->image.pitch[0] >> 8) << 8 |
84 asyw->image.blocks[0] << 8 |
85 asyw->image.blockh);
86 evo_data(push, asyw->image.kind << 16 |
87 asyw->image.format << 8);
88 evo_kick(push, &wndw->wndw);
62 struct nvif_push *push = wndw->wndw.push;
63 int ret;
64
65 if ((ret = PUSH_WAIT(push, 13)))
66 return ret;
67
68 PUSH_NVSQ(push, NV507C, 0x0084, asyw->image.mode << 8 |
69 asyw->image.interval << 4);
70 PUSH_NVSQ(push, NV507C, 0x00c0, asyw->image.handle[0]);
71 if (asyw->image.format == 0xca) {
72 PUSH_NVSQ(push, NV507C, 0x0110, 1,
73 0x0114, 0x6400);
74 } else {
75 PUSH_NVSQ(push, NV507C, 0x0110, 0,
76 0x0114, 0);
89 }
77 }
78 PUSH_NVSQ(push, NV507C, 0x0800, asyw->image.offset[0] >> 8,
79 0x0804, 0x00000000,
80 0x0808, asyw->image.h << 16 | asyw->image.w,
81 0x080c, asyw->image.layout << 20 |
82 (asyw->image.pitch[0] >> 8) << 8 |
83 asyw->image.blocks[0] << 8 |
84 asyw->image.blockh,
85 0x0810, asyw->image.kind << 16 |
86 asyw->image.format << 8);
87 return 0;
90}
91
92int
93base507c_xlut_clr(struct nv50_wndw *wndw)
94{
95 struct nvif_push *push = wndw->wndw.push;
96 int ret;
97

--- 224 unchanged lines hidden ---
88}
89
90int
91base507c_xlut_clr(struct nv50_wndw *wndw)
92{
93 struct nvif_push *push = wndw->wndw.push;
94 int ret;
95

--- 224 unchanged lines hidden ---