MTK资料:在MT6735平台上如何调试SII9024A

MT6735软件资料分享:

MT6735平台上调试SII9024A

首先配置dct:注意中断是低电平有效

 ProjectConfig中配置:
MTK_HDIM_SUPPORT=yes 
Kernel中配置:CONFIG_CUSTOM_KERNEL_HDMI="sil9024"
CONFIG_MTK_HDMI_SUPPORT=y

可能会遇到开机重启的问题,异常信息如下:
[    2.752513]<3>-(3)[1:swapper/0][KERN Warning] ERROR/WARN forces debug_lock off!
[    2.753420]<3>-(3)[1:swapper/0][KERN Warning] check backtrace:
[    2.754153]<3>-(3)[1:swapper/0]CPU: 3 PID: 1 Comm: swapper/0 Tainted: G        W    3.10.65 #4
[    2.755222]<3>-(3)[1:swapper/0]Call trace:
[    2.755743]<3>-(3)[1:swapper/0][] dump_backtrace+0x0/0x130
[    2.756627]<3>-(3)[1:swapper/0][] show_stack+0x10/0x1c
[    2.757466]<3>-(3)[1:swapper/0][] dump_stack+0x1c/0x28
[    2.758311]<3>-(3)[1:swapper/0][] debug_locks_off+0x44/0x5c
[    2.759204]<3>-(3)[1:swapper/0][] oops_enter+0xc/0x28
[    2.760032]<3>-(3)[1:swapper/0][] die+0x24/0x1d4
[    2.760807]<3>-(3)[1:swapper/0][] arm64_notify_die+0x18/0x44
[    2.761711]<3>-(3)[1:swapper/0][] bad_mode+0x78/0xb0
[    2.762529]<3>-(3)[1:swapper/0][] hdmi_init+0x3c/0x1c0
[    2.763372]<3>-(3)[1:swapper/0][] mtk_ext_disp_mgr_init+0x50/0x6c
[    2.764330]<3>-(3)[1:swapper/0][] do_one_initcall+0xa0/0x1c8
[    2.765233]<3>-(3)[1:swapper/0][] kernel_init_freeable+0x13c/0x1e0
[    2.766201]<3>-(3)[1:swapper/0][] kernel_init+0x14/0x14c
[    2.767057]<3>-(3)[1:swapper/0]Internal error: Oops - bad mode: 0 [#1] PREEMPT SMP
[    2.767997]disable aee kernel api
[    2.768446]<3>-(3)[1:swapper/0]mrdump: cpu[3] tsk:ffffffc003062000 ti:ffffffc003064000

这是因为extd_hdmi_drv.c需要调用hdmi_drv->register_callback(hdmi_state_callback);而sil9024\hdmi_drv.c中没有声明改函数,以下是相关声明:


#if 1


int hdmi_drv_get_external_device_capablity(void)
{
        
        return 0;
}


int hdmi_register_cable_insert_callback(CABLE_INSERT_CALLBACK cb)
{
    
    return 0;
}


int hdmi_unregister_cable_insert_callback(CABLE_INSERT_CALLBACK cb)
{
   
    return 0;
}


void hdmi_invoke_cable_callbacks(HDMI_STATE state)
{
   
}
void hdmi_drv_force_on(int from_YART_drv )
{
    HDMI_LOG("hdmi_drv_force_on %d\n", from_uart_drv);
/*
    if(from_uart_drv == 0)
        ForceNotSwitchToD3();
    not_switch_to_d3 = 1;
//GPIO:uart
    cust_hdmi_I2S_gpio_on(2);
*/
}
#endif
/*----------------------------------------------------------------------------*/
const HDMI_DRIVER *HDMI_GetDriver(void)
{
        static const HDMI_DRIVER HDMI_DRV = {
                .set_util_funcs = SII9024_set_util_funcs,        /*  */
                .get_params = sii9024_get_params,        /*  */
                .init = sii9024_init,        /*  */
                .enter = sii9024_enter,
                .exit = sii9024_exit,
                .suspend = sii9024_suspend,
                .resume = sii9024_resume,
                .video_config = sii9024_video_config,        /*  */
                .audio_config = sii9024_audio_config,
                .video_enable = sii9024_video_enable,
                .audio_enable = sii9024_audio_enable,
                .power_on = sii9024_power_on,        /*  */
                .power_off = sii9024_power_off,        /*  */
                .set_mode = sii9024_set_mode,
                .dump = sii9024_dump,
                .read = sii9024_read,
                .write = sii9024_write,
                .get_state = sii9024_get_state,
                .log_enable     = sii9024_log_enable,
                .getedid          = hdmi_AppGetEdidInfo,
                #if 1
        .get_external_device_capablity = hdmi_drv_get_external_device_capablity,
                .register_callback   = hdmi_register_cable_insert_callback,
                .unregister_callback = hdmi_unregister_cable_insert_callback,
        .force_on = hdmi_drv_force_on,
        #endif


        };


        return &HDMI_DRV;
}
EXPORT_SYMBOL(HDMI_GetDriver);

你可能感兴趣的:(MT6735)