summaryrefslogtreecommitdiff
path: root/ext/nomali/lib/jobslot.cc
diff options
context:
space:
mode:
Diffstat (limited to 'ext/nomali/lib/jobslot.cc')
-rw-r--r--ext/nomali/lib/jobslot.cc13
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/nomali/lib/jobslot.cc b/ext/nomali/lib/jobslot.cc
index 8ad4fa1ec..2ce1e6260 100644
--- a/ext/nomali/lib/jobslot.cc
+++ b/ext/nomali/lib/jobslot.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2015 ARM Limited
+ * Copyright (c) 2014-2016 ARM Limited
* All rights reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -28,6 +28,10 @@
namespace NoMali {
+static const Status STATUS_IDLE(Status::CLASS_NOFAULT, 0, 0);
+static const Status STATUS_DONE(Status::CLASS_NOFAULT, 0, 1);
+static const Status STATUS_ACTIVE(Status::CLASS_NOFAULT, 1, 0);
+
const std::vector<JobSlot::cmd_t> JobSlot::cmds {
&JobSlot::cmdNop, // JSn_COMMAND_NOP
&JobSlot::cmdStart, // JSn_COMMAND_START
@@ -104,7 +108,7 @@ JobSlot::tryStart()
return;
// Reset the status register
- regs[RegAddr(JSn_STATUS)] = 0;
+ regs[RegAddr(JSn_STATUS)] = STATUS_ACTIVE.value;
// Transfer the next job configuration to the active job
// configuration
@@ -113,12 +117,9 @@ JobSlot::tryStart()
regs.set64(RegAddr(JSn_AFFINITY_LO),
regs.get64(RegAddr(JSn_AFFINITY_NEXT_LO)));
regs[RegAddr(JSn_CONFIG)] = regs[RegAddr(JSn_CONFIG_NEXT)];
- regs[RegAddr(JSn_COMMAND)] = regs[RegAddr(JSn_COMMAND_NEXT)];
// Reset the next job configuration
regs.set64(RegAddr(JSn_HEAD_NEXT_LO), 0);
- regs.set64(RegAddr(JSn_AFFINITY_NEXT_LO), 0);
- regs[RegAddr(JSn_CONFIG_NEXT)] = 0;
regs[RegAddr(JSn_COMMAND_NEXT)] = 0;
runJob();
@@ -127,7 +128,7 @@ JobSlot::tryStart()
void
JobSlot::runJob()
{
- exitJob(Status(Status::CLASS_NOFAULT, 0, 1), // JSn_STATUS_DONE
+ exitJob(STATUS_DONE,
0); // Time stamp counter value
}