cs40l26: add DBC bin info and reduce duplicates
Bug: 356823441 Test: dumpsys android.hardware.vibrator.IVibrator/default Flag: EXEMPT bugfix Change-Id: Id3d9fac99b204de581269818e69722932e4911fc (cherry picked from commit 6e4e8d2052e352a56eeab2e452addaf484d79d9f)
This commit is contained in:
parent
0b3cc7ea7b
commit
f669a1ea52
1 changed files with 34 additions and 49 deletions
|
@ -1554,70 +1554,55 @@ binder_status_t Vibrator::dump(int fd, const char **args, uint32_t numArgs) {
|
||||||
dprintf(fd, "\n");
|
dprintf(fd, "\n");
|
||||||
|
|
||||||
dprintf(fd, "Versions:\n");
|
dprintf(fd, "Versions:\n");
|
||||||
|
const std::vector<std::pair<std::string, std::string>> moduleFolderNames = {
|
||||||
|
{"cs40l26_core", "Haptics"}, {"cl_dsp_core", "DSP"}};
|
||||||
|
const std::string firmwareFolder = "/vendor/firmware/";
|
||||||
|
const std::string waveformName = "cs40l26.bin";
|
||||||
|
const std::array<std::string, 2> firmwareFileNames = {"cs40l26.wmfw", "cs40l26-calib.wmfw"};
|
||||||
|
const std::array<std::string, 4> tuningFileNames = {"cs40l26-svc.bin", "cs40l26-calib.bin",
|
||||||
|
"cs40l26-dvl.bin", "cs40l26-dbc.bin"};
|
||||||
std::ifstream verFile;
|
std::ifstream verFile;
|
||||||
const auto verBinFileMode = std::ifstream::in | std::ifstream::binary;
|
const auto verBinFileMode = std::ifstream::in | std::ifstream::binary;
|
||||||
std::string ver;
|
std::string ver;
|
||||||
verFile.open("/sys/module/cs40l26_core/version");
|
for (const auto &[folder, logTag] : moduleFolderNames) {
|
||||||
if (verFile.is_open()) {
|
verFile.open("/sys/module/" + folder + "/version");
|
||||||
getline(verFile, ver);
|
if (verFile.is_open()) {
|
||||||
dprintf(fd, " Haptics Driver: %s\n", ver.c_str());
|
getline(verFile, ver);
|
||||||
verFile.close();
|
dprintf(fd, " %s Driver: %s\n", logTag.c_str(), ver.c_str());
|
||||||
|
verFile.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
verFile.open("/sys/module/cl_dsp_core/version");
|
for (auto &name : firmwareFileNames) {
|
||||||
if (verFile.is_open()) {
|
verFile.open(firmwareFolder + name, verBinFileMode);
|
||||||
getline(verFile, ver);
|
if (verFile.is_open()) {
|
||||||
dprintf(fd, " DSP Driver: %s\n", ver.c_str());
|
verFile.seekg(113);
|
||||||
verFile.close();
|
dprintf(fd, " %s: %d.%d.%d\n", name.c_str(), verFile.get(), verFile.get(),
|
||||||
|
verFile.get());
|
||||||
|
verFile.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
verFile.open("/vendor/firmware/cs40l26.wmfw", verBinFileMode);
|
verFile.open(firmwareFolder + waveformName, verBinFileMode);
|
||||||
if (verFile.is_open()) {
|
|
||||||
verFile.seekg(113);
|
|
||||||
dprintf(fd, " cs40l26.wmfw: %d.%d.%d\n", verFile.get(), verFile.get(), verFile.get());
|
|
||||||
verFile.close();
|
|
||||||
}
|
|
||||||
verFile.open("/vendor/firmware/cs40l26-calib.wmfw", verBinFileMode);
|
|
||||||
if (verFile.is_open()) {
|
|
||||||
verFile.seekg(113);
|
|
||||||
dprintf(fd, " cs40l26-calib.wmfw: %d.%d.%d\n", verFile.get(), verFile.get(),
|
|
||||||
verFile.get());
|
|
||||||
verFile.close();
|
|
||||||
}
|
|
||||||
verFile.open("/vendor/firmware/cs40l26.bin", verBinFileMode);
|
|
||||||
if (verFile.is_open()) {
|
if (verFile.is_open()) {
|
||||||
while (getline(verFile, ver)) {
|
while (getline(verFile, ver)) {
|
||||||
auto pos = ver.find("Date: ");
|
auto pos = ver.find("Date: ");
|
||||||
if (pos != std::string::npos) {
|
if (pos != std::string::npos) {
|
||||||
ver = ver.substr(pos + 6, pos + 15);
|
ver = ver.substr(pos + 6, pos + 15);
|
||||||
dprintf(fd, " cs40l26.bin: %s\n", ver.c_str());
|
dprintf(fd, " %s: %s\n", waveformName.c_str(), ver.c_str());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
verFile.close();
|
verFile.close();
|
||||||
}
|
}
|
||||||
verFile.open("/vendor/firmware/cs40l26-svc.bin", verBinFileMode);
|
for (auto &name : tuningFileNames) {
|
||||||
if (verFile.is_open()) {
|
verFile.open(firmwareFolder + name, verBinFileMode);
|
||||||
verFile.seekg(36);
|
if (verFile.is_open()) {
|
||||||
getline(verFile, ver);
|
verFile.seekg(36);
|
||||||
ver = ver.substr(ver.rfind('\\') + 1);
|
getline(verFile, ver);
|
||||||
dprintf(fd, " cs40l26-svc.bin: %s\n", ver.c_str());
|
ver = ver.substr(0, ver.find(".bin") + 4);
|
||||||
verFile.close();
|
ver = ver.substr(ver.rfind('\\') + 1);
|
||||||
}
|
dprintf(fd, " %s: %s\n", name.c_str(), ver.c_str());
|
||||||
verFile.open("/vendor/firmware/cs40l26-calib.bin", verBinFileMode);
|
verFile.close();
|
||||||
if (verFile.is_open()) {
|
}
|
||||||
verFile.seekg(36);
|
|
||||||
getline(verFile, ver);
|
|
||||||
ver = ver.substr(ver.rfind('\\') + 1);
|
|
||||||
dprintf(fd, " cs40l26-calib.bin: %s\n", ver.c_str());
|
|
||||||
verFile.close();
|
|
||||||
}
|
|
||||||
verFile.open("/vendor/firmware/cs40l26-dvl.bin", verBinFileMode);
|
|
||||||
if (verFile.is_open()) {
|
|
||||||
verFile.seekg(36);
|
|
||||||
getline(verFile, ver);
|
|
||||||
ver = ver.substr(0, ver.find('\0') + 1);
|
|
||||||
ver = ver.substr(ver.rfind('\\') + 1);
|
|
||||||
dprintf(fd, " cs40l26-dvl.bin: %s\n", ver.c_str());
|
|
||||||
verFile.close();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dprintf(fd, "\n");
|
dprintf(fd, "\n");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue