Android [QCOM-MSM8916][CM12.1]如何注册正确的帧缓冲区节点?(fb0/1/2)
我现在是三星Galaxy J5的开发者Android [QCOM-MSM8916][CM12.1]如何注册正确的帧缓冲区节点?(fb0/1/2),android,c++,c,framebuffer,cyanogenmod,Android,C++,C,Framebuffer,Cyanogenmod,我现在是三星Galaxy J5的开发者 芯片组:高通公司MSM8916 Snapdragon 410 CPU:四核1.2 GHz Cortex-A53 GPU:肾上腺306 在/hardware/qcom/display caf/msm8916/libqdutils中,有相应的文件(qd_utils.cpp)通过msm_fb_类型声明帧缓冲区节点 #include "qd_utils.h" #define QD_UTILS_DEBUG 0 namespace qdutils { int
- 芯片组:高通公司MSM8916 Snapdragon 410
- CPU:四核1.2 GHz Cortex-A53
- GPU:肾上腺306
#include "qd_utils.h"
#define QD_UTILS_DEBUG 0
namespace qdutils {
int getHDMINode(void)
{
FILE *displayDeviceFP = NULL;
char fbType[MAX_FRAME_BUFFER_NAME_SIZE];
char msmFbTypePath[MAX_FRAME_BUFFER_NAME_SIZE];
int j = 0;
for(j = 0; j < HWC_NUM_DISPLAY_TYPES; j++) {
snprintf (msmFbTypePath, sizeof(msmFbTypePath),
"/sys/class/graphics/fb%d/msm_fb_type", j);
displayDeviceFP = fopen(msmFbTypePath, "r");
if(displayDeviceFP) {
fread(fbType, sizeof(char), MAX_FRAME_BUFFER_NAME_SIZE,
displayDeviceFP);
if(strncmp(fbType, "dtv panel", strlen("dtv panel")) == 0) {
ALOGD("%s: HDMI is at fb%d", __func__, j);
fclose(displayDeviceFP);
break;
}
fclose(displayDeviceFP);
} else {
ALOGE("%s: Failed to open fb node %d", __func__, j);
}
}
if (j < HWC_NUM_DISPLAY_TYPES)
return j;
else
ALOGE("%s: Failed to find HDMI node", __func__);
关于如何禁用/dev/fb2节点搜索,或者在内核/设备树中包含此功能,有什么想法吗?一些开发人员说,当按下电源键时,缺少节点会导致屏幕启用/禁用延迟,所以我猜这是一个bug
来源
E/qdutils ( 269): int qdutils::getHDMINode(): Failed to open fb node 2
E/qdutils ( 269): int qdutils::getHDMINode(): Failed to find HDMI node