summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Koƛcielnicki <koriakin@0x04.net>2017-01-02 03:57:48 +0100
committerMarcin Koƛcielnicki <koriakin@0x04.net>2017-01-02 03:57:48 +0100
commitfed273e0708f22f4e7adce1b3e7815032c28290f (patch)
treebcc483f4e4609e92ce47856a4790f1723d17b915
parent1bebcacc45b036901149f0545e2a6f5ff269e588 (diff)
hwtest/pgraph: Nailed down PIPE icmd submission area.
-rw-r--r--hwtest/pgraph_state_tests.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/hwtest/pgraph_state_tests.cc b/hwtest/pgraph_state_tests.cc
index 3f4c175d..154fa557 100644
--- a/hwtest/pgraph_state_tests.cc
+++ b/hwtest/pgraph_state_tests.cc
@@ -1223,6 +1223,24 @@ class PipeWriteLightSDTest : public StateTest {
using StateTest::StateTest;
};
+class PipeWriteICmdTest : public StateTest {
+ uint32_t reg, val;
+ bool supported() override {
+ return chipset.card_type == 0x10;
+ }
+ void mutate() override {
+ reg = rnd() & 0x1fc;
+ val = rnd();
+ nva_wr32(cnum, 0x400f50, 0x0400 | reg);
+ nva_wr32(cnum, 0x400f54, val);
+ pgraph_celsius_icmd(&exp, extr(reg, 3, 6), val);
+ }
+ void print_fail() {
+ printf("After writing %08x <- %08x\n", reg, val);
+ }
+ using StateTest::StateTest;
+};
+
class FormatsTest : public StateTest {
uint32_t val;
protected:
@@ -1322,6 +1340,7 @@ Test::Subtests PGraphStateTests::subtests() {
{"pipe_write_light_sb", new PipeWriteLightSBTest(opt, rnd())},
{"pipe_write_light_sc", new PipeWriteLightSCTest(opt, rnd())},
{"pipe_write_light_sd", new PipeWriteLightSDTest(opt, rnd())},
+ {"pipe_write_icmd", new PipeWriteICmdTest(opt, rnd())},
{"clip_status", new ClipStatusTest(opt, rnd())},
{"formats", new FormatsTest(opt, rnd())},
};