sh4: rework hwcaps

Origin commit data
------------------
Branch: master
Commit: f1a800a646
Author: BPanther <bpanther_ts@hotmail.com>
Date: 2021-05-09 (Sun, 09 May 2021)


------------------
No further description and justification available within origin commit message!

------------------
This commit was generated by Migit
This commit is contained in:
BPanther
2021-05-09 21:25:43 +02:00
committed by vanhofen
parent aad81bfe8e
commit 697953230a

View File

@@ -7,6 +7,7 @@
* License: GPL v2 or later * License: GPL v2 or later
*/ */
#include <config.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
@@ -25,329 +26,277 @@ hw_caps_t *get_hwcaps(void)
memset(&caps, 0, sizeof(hw_caps_t)); memset(&caps, 0, sizeof(hw_caps_t));
#if BOXMODEL_UFS910
initialized = 1; initialized = 1;
char buf[64]; strcpy(caps.boxvendor, "DUCKBOX");
int len = -1; strcpy(caps.boxname, "UFS910");
int fd = open("/proc/stb/info/model", O_RDONLY); strcpy(caps.boxarch, caps.boxname);
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 0;
caps.has_CI = 2;
caps.display_can_set_brightness = 1;
caps.display_can_deepstandby = 0;
caps.display_has_statusline = 0;
caps.display_type = HW_DISPLAY_LINE_TEXT;
caps.display_xres = 16;
#endif
#if BOXMODEL_UFS912
initialized = 1;
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "UFS912");
strcpy(caps.boxarch, caps.boxname);
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 1;
caps.has_fan = 0;
caps.has_CI = 2;
caps.display_can_set_brightness = 1;
caps.display_can_deepstandby = 0;
caps.display_has_statusline = 0;
caps.display_type = HW_DISPLAY_LINE_TEXT;
caps.display_xres = 16;
#endif
#if BOXMODEL_UFS913
initialized = 1;
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "UFS913");
strcpy(caps.boxarch, caps.boxname);
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 1;
caps.has_fan = 0;
caps.has_CI = 2;
caps.display_can_set_brightness = 1;
caps.display_can_deepstandby = 0;
caps.display_has_statusline = 0;
caps.display_type = HW_DISPLAY_LINE_TEXT;
caps.display_xres = 16;
#endif
#if BOXMODEL_UFS922
initialized = 1;
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "UFS922");
strcpy(caps.boxarch, caps.boxname);
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 1;
caps.has_CI = 2;
caps.display_can_set_brightness = 1;
caps.display_can_deepstandby = 0;
caps.display_has_statusline = 0;
caps.display_type = HW_DISPLAY_LINE_TEXT;
caps.display_xres = 16;
#endif
#if BOXMODEL_ATEVIO7500
initialized = 1;
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "ATEVIO7500");
strcpy(caps.boxarch, caps.boxname);
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 1;
caps.has_fan = 0;
caps.has_CI = 2;
caps.display_can_set_brightness = 1;
caps.display_can_deepstandby = 0;
caps.display_has_statusline = 0;
caps.display_type = HW_DISPLAY_LINE_TEXT;
caps.display_xres = 12;
#endif
#if BOXMODEL_FORTIS_HDBOX
initialized = 1;
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "HDBOX");
strcpy(caps.boxarch, caps.boxname);
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 0;
caps.has_CI = 2;
caps.display_can_set_brightness = 1;
caps.display_can_deepstandby = 0;
caps.display_has_statusline = 0;
caps.display_type = HW_DISPLAY_LINE_TEXT;
caps.display_xres = 12;
#endif
#if BOXMODEL_OCTAGON1008
initialized = 1;
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "OCTAGON1008");
strcpy(caps.boxarch, caps.boxname);
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 0;
caps.has_CI = 2;
caps.display_can_set_brightness = 1;
caps.display_can_deepstandby = 0;
caps.display_has_statusline = 0;
caps.display_type = HW_DISPLAY_LINE_TEXT;
caps.display_xres = 8;
#endif
#if BOXMODEL_CUBEREVO
initialized = 1;
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "CUBEREVO");
strcpy(caps.boxarch, caps.boxname);
caps.can_shutdown = 1;
caps.display_can_set_brightness = 0; caps.display_can_set_brightness = 0;
caps.display_can_deepstandby = 0; caps.display_can_deepstandby = 0;
caps.display_has_statusline = 0; caps.display_has_statusline = 0;
caps.can_cpufreq = 1; caps.has_HDMI = 1;
if (fd != -1) { caps.has_SCART = 1;
len = read(fd, buf, sizeof(buf) - 1); caps.can_cec = 0;
close(fd); caps.has_fan = 1;
} caps.has_CI = 2;
if (len > 0) { #endif
buf[len] = 0; #if BOXMODEL_CUBEREVO_MINI
if (!strncmp(buf, "atevio7500", 10)) { initialized = 1;
strcpy(caps.boxvendor, "DUCKBOX"); strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "atevio7500"); strcpy(caps.boxname, "CUBEREVO-MINI");
caps.can_shutdown = 1; strcpy(caps.boxarch, caps.boxname);
caps.has_HDMI = 1; caps.can_shutdown = 1;
caps.has_SCART = 1; caps.display_can_set_brightness = 0;
caps.can_cec = 1; caps.display_can_deepstandby = 0;
caps.has_fan = 0; caps.display_has_statusline = 0;
caps.has_CI = 2; caps.has_HDMI = 1;
caps.display_can_set_brightness = 1; caps.has_SCART = 1;
caps.display_type = HW_DISPLAY_LINE_TEXT; caps.can_cec = 0;
caps.display_xres = 12; caps.has_fan = 0;
} caps.has_CI = 2;
else if (!strncmp(buf, "ufs912", 6)) { #endif
strcpy(caps.boxvendor, "DUCKBOX"); #if BOXMODEL_CUBEREVO_MINI2
strcpy(caps.boxname, "ufs912"); initialized = 1;
caps.can_shutdown = 1; strcpy(caps.boxvendor, "DUCKBOX");
caps.has_HDMI = 1; strcpy(caps.boxname, "CUBEREVO-MINI2");
caps.has_SCART = 1; strcpy(caps.boxarch, caps.boxname);
caps.can_cec = 1; caps.can_shutdown = 1;
caps.has_fan = 0; caps.has_HDMI = 1;
caps.has_CI = 2; caps.has_SCART = 1;
caps.display_can_set_brightness = 1; caps.can_cec = 0;
caps.display_type = HW_DISPLAY_LINE_TEXT; caps.has_fan = 1;
caps.display_xres = 16; caps.has_CI = 2;
} caps.display_can_set_brightness = 1;
else if (!strncmp(buf, "ufs913", 6)) { caps.display_can_deepstandby = 0;
strcpy(caps.boxvendor, "DUCKBOX"); caps.display_has_statusline = 0;
strcpy(caps.boxname, "ufs913"); caps.display_type = HW_DISPLAY_LINE_TEXT;
caps.can_shutdown = 1; caps.display_xres = 14;
caps.has_HDMI = 1; #endif
caps.has_SCART = 1; #if BOXMODEL_CUBEREVO_250HD
caps.can_cec = 1; initialized = 1;
caps.has_fan = 0; strcpy(caps.boxvendor, "DUCKBOX");
caps.has_CI = 2; strcpy(caps.boxname, "CUBEREVO-250HD");
caps.display_can_set_brightness = 1; strcpy(caps.boxarch, caps.boxname);
caps.display_type = HW_DISPLAY_LINE_TEXT; caps.can_shutdown = 1;
caps.display_xres = 16; caps.display_can_set_brightness = 0;
} caps.display_can_deepstandby = 0;
else if (!strncmp(buf, "ufs922", 6)) { caps.display_has_statusline = 0;
strcpy(caps.boxvendor, "DUCKBOX"); caps.has_HDMI = 1;
strcpy(caps.boxname, "ufs922"); caps.has_SCART = 1;
caps.can_shutdown = 1; caps.can_cec = 0;
caps.has_HDMI = 1; caps.has_fan = 1;
caps.has_SCART = 1; caps.has_CI = 0;
caps.can_cec = 0; #endif
caps.has_fan = 1; #if BOXMODEL_CUBEREVO_2000HD
caps.has_CI = 2; initialized = 1;
caps.display_can_set_brightness = 1; strcpy(caps.boxvendor, "DUCKBOX");
caps.display_type = HW_DISPLAY_LINE_TEXT; strcpy(caps.boxname, "CUBEREVO-2000HD");
caps.display_xres = 16; strcpy(caps.boxarch, caps.boxname);
} caps.can_shutdown = 1;
else if (!strncmp(buf, "ufs910", 6)) { caps.display_can_set_brightness = 0;
strcpy(caps.boxvendor, "DUCKBOX"); caps.display_can_deepstandby = 0;
strcpy(caps.boxname, "ufs910"); caps.display_has_statusline = 0;
caps.can_shutdown = 1; caps.has_HDMI = 1;
caps.has_HDMI = 1; caps.has_SCART = 1;
caps.has_SCART = 1; caps.can_cec = 0;
caps.can_cec = 0; caps.has_fan = 0;
caps.has_fan = 0; caps.has_CI = 0;
caps.has_CI = 2; #endif
caps.display_can_set_brightness = 1; #if BOXMODEL_CUBEREVO_3000HD
caps.display_type = HW_DISPLAY_LINE_TEXT; initialized = 1;
caps.display_xres = 16; strcpy(caps.boxvendor, "DUCKBOX");
} strcpy(caps.boxname, "CUBEREVO-3000HD");
else if (!strncmp(buf, "hdbox", 5)) { strcpy(caps.boxarch, caps.boxname);
strcpy(caps.boxvendor, "DUCKBOX"); caps.can_shutdown = 1;
strcpy(caps.boxname, "hdbox"); caps.display_can_set_brightness = 0;
caps.can_shutdown = 1; caps.display_can_deepstandby = 0;
caps.has_HDMI = 1; caps.display_has_statusline = 0;
caps.has_SCART = 1; caps.has_HDMI = 1;
caps.can_cec = 0; caps.has_SCART = 1;
caps.has_fan = 0; caps.can_cec = 0;
caps.has_CI = 2; caps.has_fan = 1;
caps.display_can_set_brightness = 1; caps.has_CI = 2;
caps.display_type = HW_DISPLAY_LINE_TEXT; #endif
caps.display_xres = 12; #if BOXMODEL_IPBOX9900
} initialized = 1;
else if (!strncmp(buf, "octagon1008", 11)) { strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxvendor, "DUCKBOX"); strcpy(caps.boxname, "IPBOX9900");
strcpy(caps.boxname, "octagon1008"); strcpy(caps.boxarch, caps.boxname);
caps.can_shutdown = 1; caps.can_shutdown = 1;
caps.has_HDMI = 1; caps.display_can_set_brightness = 0;
caps.has_SCART = 1; caps.display_can_deepstandby = 0;
caps.can_cec = 0; caps.display_has_statusline = 0;
caps.has_fan = 0; caps.has_HDMI = 1;
caps.has_CI = 2; caps.has_SCART = 2;
caps.display_can_set_brightness = 1; caps.can_cec = 0;
caps.display_type = HW_DISPLAY_LINE_TEXT; caps.has_fan = 1;
caps.display_xres = 8; caps.has_CI = 2;
} #endif
else if (!strncmp(buf, "hs7110", 6)) { #if BOXMODEL_IPBOX99
strcpy(caps.boxvendor, "DUCKBOX"); initialized = 1;
strcpy(caps.boxname, buf); strcpy(caps.boxvendor, "DUCKBOX");
caps.can_shutdown = 1; strcpy(caps.boxname, "IPBOX99");
caps.has_HDMI = 1; strcpy(caps.boxarch, caps.boxname);
caps.has_SCART = 1; caps.can_shutdown = 1;
caps.can_cec = 1; caps.display_can_set_brightness = 0;
caps.has_fan = 0; caps.display_can_deepstandby = 0;
} caps.display_has_statusline = 0;
else if (!strncmp(buf, "hs7810a", 7)) { caps.has_HDMI = 1;
strcpy(caps.boxvendor, "DUCKBOX"); caps.has_SCART = 1;
strcpy(caps.boxname, buf); caps.can_cec = 0;
caps.can_shutdown = 1; caps.has_fan = 1;
caps.has_HDMI = 1; caps.has_CI = 0;
caps.has_SCART = 1; #endif
caps.can_cec = 1; #if BOXMODEL_IPBOX55
caps.has_fan = 0; initialized = 1;
} strcpy(caps.boxvendor, "DUCKBOX");
else if (!strncmp(buf, "hs7119", 6)) { strcpy(caps.boxname, "IPBOX55");
strcpy(caps.boxvendor, "DUCKBOX"); strcpy(caps.boxarch, caps.boxname);
strcpy(caps.boxname, buf); caps.can_shutdown = 1;
caps.can_shutdown = 1; caps.display_can_set_brightness = 0;
caps.has_HDMI = 1; caps.display_can_deepstandby = 0;
caps.has_SCART = 1; caps.display_has_statusline = 0;
caps.can_cec = 1; caps.has_HDMI = 1;
caps.has_fan = 0; caps.has_SCART = 1;
} caps.can_cec = 0;
else if (!strncmp(buf, "hs7819", 6)) { caps.has_fan = 0;
strcpy(caps.boxvendor, "DUCKBOX"); caps.has_CI = 0;
strcpy(caps.boxname, buf); #endif
caps.can_shutdown = 1; #if BOXMODEL_TF7700
caps.has_HDMI = 1; initialized = 1;
caps.has_SCART = 1; strcpy(caps.boxvendor, "DUCKBOX");
caps.can_cec = 1; strcpy(caps.boxname, "TF7700");
caps.has_fan = 0; strcpy(caps.boxarch, caps.boxname);
} caps.can_shutdown = 1;
else if (!strncmp(buf, "dp7000", 6)) { caps.display_can_set_brightness = 0;
strcpy(caps.boxvendor, "DUCKBOX"); caps.display_can_deepstandby = 0;
strcpy(caps.boxname, buf); caps.display_has_statusline = 0;
caps.can_shutdown = 1; caps.has_HDMI = 1;
caps.has_HDMI = 1; caps.has_SCART = 1;
caps.has_SCART = 1; caps.can_cec = 0;
caps.can_cec = 1; caps.has_fan = 0;
caps.has_fan = 0; caps.has_CI = 2;
} #endif
else if (!strncmp(buf, "cuberevo-mini", 14)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "cuberevo-mini");
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 0;
caps.has_CI = 2;
}
else if (!strncmp(buf, "cuberevo-mini2", 14)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "cuberevo-mini2");
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 1;
caps.has_CI = 2;
caps.display_can_set_brightness = 1;
caps.display_type = HW_DISPLAY_LINE_TEXT;
caps.display_xres = 14;
}
else if (!strncmp(buf, "cuberevo-250hd", 4)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "cuberevo-250hd");
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 1;
caps.has_CI = 0;
}
else if (!strncmp(buf, "cuberevo-2000hd", 15)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "cuberevo-2000hd");
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 0;
caps.has_CI = 0;
}
else if (!strncmp(buf, "cuberevo", 8)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "cuberevo");
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 1;
caps.has_CI = 2;
}
else if (!strncmp(buf, "cuberevo-3000hd", 14)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "cuberevo-3000hd");
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 1;
caps.has_CI = 2;
}
else if (!strncmp(buf, "ipbox9900", 9)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "ipbox9900");
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 2;
caps.can_cec = 0;
caps.has_fan = 1;
caps.has_CI = 2;
}
else if (!strncmp(buf, "ipbox99", 7)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "ipbox99");
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 1;
caps.has_CI = 0;
}
else if (!strncmp(buf, "ipbox55", 7)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "ipbox55");
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 0;
caps.has_CI = 0;
}
else if (!strncmp(buf, "tf7700", 6)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, "tf7700");
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 0;
caps.has_fan = 0;
caps.has_CI = 2;
}
else if (!strncmp(buf, "hl101", 5)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, buf);
caps.can_shutdown = 1;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.has_SCART_input = 1;
caps.can_cec = 1;
caps.has_fan = 0;
caps.has_CI = 2;
caps.display_can_set_brightness = 1;
caps.display_type = HW_DISPLAY_LINE_TEXT;
caps.display_xres = 8;
}
else if (!strncmp(buf, "arivalink200", 12)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, buf);
caps.can_shutdown = 0;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 1;
caps.has_fan = 0;
caps.has_CI = 2;
caps.display_can_set_brightness = 0;
}
else if ((!strncasecmp(buf, "nbox", 4)) ||
(!strncasecmp(buf, "adb_box", 7))) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, buf);
caps.can_shutdown = 0;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 1;
caps.has_fan = 1;
caps.has_CI = 2;
caps.display_can_set_brightness = 1;
}
else if ((!strncasecmp(buf, "sagemcom88", 10)) ||
(!strncasecmp(buf, "esi_88", 6)) ||
(!strncasecmp(buf, "esi88", 5)) ||
(!strncasecmp(buf, "dsi87", 5))) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, buf);
caps.can_shutdown = 0;
caps.has_HDMI = 1;
caps.has_SCART = 1;
caps.can_cec = 1;
caps.has_fan = 1;
caps.has_CI = 0;
caps.display_can_set_brightness = 1;
}
else if (!strncasecmp(buf, "dsi87", 5)) {
strcpy(caps.boxvendor, "DUCKBOX");
strcpy(caps.boxname, buf);
caps.can_shutdown = 0;
caps.has_HDMI = 1;
caps.has_SCART = 0;
caps.can_cec = 1;
caps.has_fan = 0;
caps.has_CI = 0;
caps.display_can_set_brightness = 0;
}
else {
strcpy(caps.boxvendor, "unknown");
strcpy(caps.boxname, buf);
}
}
else
strcpy(caps.boxname, "(unknown model)");
strcpy(caps.boxarch,caps.boxname);
return &caps; return &caps;
} }