HDMI Q&A
Q1:如何调整hdmi驱动能力
-
驱动电流调整寄存器为145A,可以先通过riu_w写寄存器的方式调到一个合适值。各相关设定参考下表

-
hdmi已增加结构体参数
typedef struct MI_HDMI_AnalogDrvCurrent_s { MI_U8 u8DrvCurTap1Ch0; MI_U8 u8DrvCurTap1Ch1; MI_U8 u8DrvCurTap1Ch2; MI_U8 u8DrvCurTap1Ch3; MI_U8 u8DrvCurTap2Ch0; MI_U8 u8DrvCurTap2Ch1; MI_U8 u8DrvCurTap2Ch2; MI_U8 u8DrvCurTap2Ch3; MI_U8 u8DrvCurPdRtermCh; MI_U8 u8DrvCurPdLdoPreDrvCh; MI_U8 u8DrvCurPdLdoMuxCh; } MI_HDMI_AnalogDrvCurrent_t;
需要在MI_HDMI_Open后调用MI_HDMI_SetAnalogDrvCurrent设置想要的值。
-
如果通过riu_w写寄存器的方式调到一个合适值是
Bank 145A寄存器0x32 0x000F,则bit[3:0]代表u8DrvCurPdRtermCh=0xf,bit[7:4]代表u8DrvCurPdLdoPreDrvCh=0,bit[11:8]代表u8DrvCurPdLdoMuxCh=0。
Bank 145A寄存器0x22 0x1415,则bit[5:0]代表u8DrvCurTap1Ch0=0x15,bit[13:8]代表u8DrvCurTap1Ch1=0x14。
Bank 145A寄存器0x23 0x1617,则bit[5:0]代表u8DrvCurTap1Ch2=0x17,bit[13:8]代表u8DrvCurTap1Ch3=0x16。
参考代码:
MI_HDMI_AnalogDrvCurrent_t CurInfo = {0x15, 0x14, 0x17, 0x16,0,0,0,0,0xf,0,0}; MI_HDMI_SetAnalogDrvCurrent(g_HdmiAttr.eHdmi, &CurInfo);
Q2:hdmi做颜色空间的切换,需要调用哪个函数?
通过MI_HDMI_SetAttr(MI_HDMI_DeviceId_e eHdmi, MI_HDMI_Attr_t *pstAttr);函数接口设置MI_HDMI_Attr_t→MI_HDMI_VideoAttr_s的MI_HDMI_ColorType_e eColorType参数。可参考MI HDMI API。
Q3:920G/910Q上面MI_DISP_SetHdmiParam设置的参数是否会对VGA也有作用?如果想要HDMI和VGA分开设置不同参数,能否实现?
920G/910Q上面调用MI_DISP_SetHdmiParam这个接口设置参数对VGA那边也会有效,因为二者同源的关系,csc是同一个地方做的,也因此目前无法分开设置不同效果参数。
Q4: HDMI获取显示器支持能力的接口
通过MI_HDMI_GetSinkInfo接口可以获取显示器支持能力集,调用前必须先打开 HDMI。
Q5: 如何强制设置HDMI输出模式?
echo setHdmiMode hdmi > /proc/mi_modules/mi_hdmi/mi_hdmi0 //强制走 hdmi 模式
echo setHdmiMode dvi > /proc/mi_modules/mi_hdmi/mi_hdmi0 //强制走 dvi 模式