Add back misc thread
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
#include "board_fuse.hpp"
|
||||
#include "board_load.hpp"
|
||||
#include "board_ram_oc_dvfs.hpp"
|
||||
#include "board_misc.hpp"
|
||||
|
||||
namespace board {
|
||||
|
||||
@@ -113,15 +114,17 @@ namespace board {
|
||||
|
||||
StartGpuLoad(nvCheck, fd);
|
||||
/* TODO: Add back fan. */
|
||||
// threadCreate(&miscThread, miscThreadFunc, NULL, NULL, 0x1000, 0x10, 3);
|
||||
StartMiscThread(pwmCheck)
|
||||
|
||||
// threadStart(&miscThread);
|
||||
batteryInfoInitialize();
|
||||
FetchHardwareInfos();
|
||||
|
||||
// if (hosversionAtLeast(6,0,0) && R_SUCCEEDED(pwmInitialize())) {
|
||||
// pwmCheck = pwmOpenSession2(&g_ICon, 0x3D000001);
|
||||
// }
|
||||
Result pwmCheck = 1;
|
||||
if (hosversionAtLeast(6,0,0) && R_SUCCEEDED(pwmInitialize())) {
|
||||
pwmCheck = pwmOpenSession2(&g_ICon, 0x3D000001);
|
||||
}
|
||||
|
||||
StartMiscThread(pwmCheck);
|
||||
|
||||
if (gConsoleType != HorizonOCConsoleType_Hoag) {
|
||||
u64 clkVirtAddr, dsiVirtAddr, outsize;
|
||||
@@ -168,7 +171,7 @@ namespace board {
|
||||
|
||||
ExitLoad();
|
||||
|
||||
// threadClose(&miscThread);
|
||||
ExitMiscThread();
|
||||
|
||||
pwmChannelSessionClose(&g_ICon);
|
||||
pwmExit();
|
||||
|
||||
@@ -30,6 +30,7 @@
|
||||
#include <algorithm>
|
||||
#include <math.h>
|
||||
#include <numeric>
|
||||
#include "board_misc.hpp"
|
||||
|
||||
namespace board {
|
||||
|
||||
@@ -114,6 +115,8 @@ namespace board {
|
||||
BatteryChargeInfo info;
|
||||
batteryInfoGetChargeInfo(&info);
|
||||
return info.RawBatteryCharge;
|
||||
case HocClkPartLoad_FAN:
|
||||
return GetFanLevel();
|
||||
default:
|
||||
ASSERT_ENUM_VALID(SysClkPartLoad, loadSource);
|
||||
}
|
||||
|
||||
67
Source/rewrite-hoc-clk/sysmodule/src/board/board_misc.cpp
Normal file
67
Source/rewrite-hoc-clk/sysmodule/src/board/board_misc.cpp
Normal file
@@ -0,0 +1,67 @@
|
||||
/*
|
||||
* Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
* "THE BEER-WARE LICENSE" (Revision 42):
|
||||
* <p-sam@d3vs.net>, <natinusala@gmail.com>, <m4x@m4xw.net>
|
||||
* wrote this file. As long as you retain this notice you can do whatever you
|
||||
* want with this stuff. If you meet any of us some day, and you think this
|
||||
* stuff is worth it, you can buy us a beer in return. - The sys-clk authors
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#include <switch.h>
|
||||
|
||||
namespace board {
|
||||
|
||||
Thread miscThread;
|
||||
u8 fanLevel = 0;
|
||||
|
||||
void MiscThreadFunc(void *pwmCheckPtr) {
|
||||
Result pwmCheck = *static_cast<Result *>(pwmCheckPtr);
|
||||
double temp = 0;
|
||||
double rotationDuty = 0;
|
||||
|
||||
while (true) {
|
||||
if (R_SUCCEEDED(pwmCheck)) {
|
||||
if (R_SUCCEEDED(pwmChannelSessionGetDutyCycle(&g_ICon, &temp))) {
|
||||
temp *= 10;
|
||||
temp = trunc(temp);
|
||||
temp /= 10;
|
||||
rotationDuty = 100.0 - temp;
|
||||
}
|
||||
}
|
||||
|
||||
fanLevel = static_cast<u8>(Rotation_Duty);
|
||||
svcSleepThread(300'000'000);
|
||||
}
|
||||
}
|
||||
|
||||
u8 GetFanLevel() {
|
||||
return fanLevel;
|
||||
}
|
||||
|
||||
void StartMiscThread(Result pwmCheck) {
|
||||
threadCreate(&miscThread, MiscThreadFunc, &pwmCheck, NULL, 0x1000, 0x10, 3);
|
||||
threadStart(&miscThread);
|
||||
}
|
||||
|
||||
void ExitMiscThread() {
|
||||
threadClose(&miscThread);
|
||||
}
|
||||
|
||||
}
|
||||
38
Source/rewrite-hoc-clk/sysmodule/src/board/board_misc.hpp
Normal file
38
Source/rewrite-hoc-clk/sysmodule/src/board/board_misc.hpp
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) Souldbminer, Lightos_ and Horizon OC Contributors
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU General Public License,
|
||||
* version 2, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
* "THE BEER-WARE LICENSE" (Revision 42):
|
||||
* <p-sam@d3vs.net>, <natinusala@gmail.com>, <m4x@m4xw.net>
|
||||
* wrote this file. As long as you retain this notice you can do whatever you
|
||||
* want with this stuff. If you meet any of us some day, and you think this
|
||||
* stuff is worth it, you can buy us a beer in return. - The sys-clk authors
|
||||
* --------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <switch.h>
|
||||
#include <sysclk.h>
|
||||
|
||||
namespace board {
|
||||
|
||||
void StartMiscThread(Result pwmCheck);
|
||||
void ExitMiscThread();
|
||||
u8 GetFanLevel();
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user