[GSP::GPU] Implement SetAxiConfigQoSMode

This commit is contained in:
wheremyfoodat 2022-10-15 19:18:53 +03:00
parent 49dc526347
commit 57fa61eb3f
2 changed files with 10 additions and 1 deletions

View file

@ -34,6 +34,7 @@ class GPUService {
void acquireRight(u32 messagePointer);
void flushDataCache(u32 messagePointer);
void registerInterruptRelayQueue(u32 messagePointer);
void setAxiConfigQoSMode(u32 messagePointer);
void setInternalPriorities(u32 messagePointer);
void setLCDForceBlack(u32 messagePointer);
void triggerCmdReqQueue(u32 messagePointer);

View file

@ -3,6 +3,7 @@
// Commands used with SendSyncRequest targetted to the GSP::GPU service
namespace ServiceCommands {
enum : u32 {
SetAxiConfigQoSMode = 0x00100040,
AcquireRight = 0x00160042,
RegisterInterruptRelayQueue = 0x00130042,
WriteHwRegs = 0x00010082,
@ -43,9 +44,10 @@ void GPUService::handleSyncRequest(u32 messagePointer) {
case ServiceCommands::AcquireRight: acquireRight(messagePointer); break;
case ServiceCommands::FlushDataCache: flushDataCache(messagePointer); break;
case ServiceCommands::RegisterInterruptRelayQueue: registerInterruptRelayQueue(messagePointer); break;
case ServiceCommands::SetAxiConfigQoSMode: setAxiConfigQoSMode(messagePointer); break;
case ServiceCommands::SetInternalPriorities: setInternalPriorities(messagePointer); break;
case ServiceCommands::SetLCDForceBlack: setLCDForceBlack(messagePointer); break;
case ServiceCommands::TriggerCmdReqQueue: triggerCmdReqQueue(messagePointer); break;
case ServiceCommands::TriggerCmdReqQueue: [[likely]] triggerCmdReqQueue(messagePointer); break;
case ServiceCommands::WriteHwRegs: writeHwRegs(messagePointer); break;
case ServiceCommands::WriteHwRegsWithMask: writeHwRegsWithMask(messagePointer); break;
; default: Helpers::panic("GPU service requested. Command: %08X\n", command);
@ -199,6 +201,12 @@ void GPUService::triggerCmdReqQueue(u32 messagePointer) {
}
// Seems to be completely undocumented, probably not very important or useful
void GPUService::setAxiConfigQoSMode(u32 messagePointer) {
log("GSP::GPU::SetAxiConfigQoSMode\n");
mem.write32(messagePointer + 4, Result::Success);
}
// Seems to also be completely undocumented
void GPUService::setInternalPriorities(u32 messagePointer) {
log("GSP::GPU::SetInternalPriorities\n");
mem.write32(messagePointer + 4, Result::Success);