static void acc_check_dock_detection(struct acc_con_info *acc) { if (NULL == acc->pdata->get_dock_state) { ACC_CONDEV_DBG("[30PIN] failed to get acc state!!!"); return; } if (!acc->pdata->get_dock_state()) { #ifdef CONFIG_SEC_KEYBOARD_DOCK if (acc->pdata->check_keyboard && acc->pdata->check_keyboard(true)) { acc->current_dock = DOCK_KEYBOARD; ACC_CONDEV_DBG ("[30PIN] keyboard dock station attached!!!"); switch_set_state(&acc->dock_switch, UEVENT_DOCK_KEYBOARD); } else #endif { ACC_CONDEV_DBG ("[30PIN] desktop dock station attached!!!"); switch_set_state(&acc->dock_switch, UEVENT_DOCK_DESK); acc->current_dock = DOCK_DESK; #ifdef CONFIG_MHL_SII9234 mutex_lock(&acc->lock); if (!acc->mhl_pwr_state) { sii9234_tpi_init(); acc->mhl_pwr_state = true; } mutex_unlock(&acc->lock); #endif } acc_dock_uevent(acc, true); } else { ACC_CONDEV_DBG("[30PIN] dock station detached!!!"); switch_set_state(&acc->dock_switch, UEVENT_DOCK_NONE); #ifdef CONFIG_SEC_KEYBOARD_DOCK if (acc->pdata->check_keyboard) acc->pdata->check_keyboard(false); #endif #ifdef CONFIG_MHL_SII9234 /*call MHL deinit */ if (acc->mhl_pwr_state) { MHD_HW_Off(); acc->mhl_pwr_state = false; } #endif /*TVout_LDO_ctrl(false); */ acc_dock_uevent(acc, false); } }
static void acc_check_dock_detection(struct acc_con_info *acc) { if (!acc->pdata->get_dock_state()) { // ACC_CONDEV_DBG("[30PIN] failed to get acc state!!!"); wake_lock(&acc->wake_lock); #ifdef CONFIG_SEC_KEYBOARD_DOCK if (acc->pdata->check_keyboard && acc->pdata->check_keyboard(true)) { acc->current_dock = DOCK_KEYBOARD; ACC_CONDEV_DBG ("[30PIN] keyboard dock station attached!!!"); switch_set_state(&acc->dock_switch, UEVENT_DOCK_KEYBOARD); } else #endif { ACC_CONDEV_DBG ("[30PIN] desktop dock station attached!!!"); switch_set_state(&acc->dock_switch, UEVENT_DOCK_DESK); acc->current_dock = DOCK_DESK; } #ifdef CONFIG_MHL_SII9234 mutex_lock(&acc->lock); sii9234_tpi_init(); hdmi_msm_hpd_switch(true); mutex_unlock(&acc->lock); #endif acc_dock_uevent(acc, true); wake_unlock(&acc->wake_lock); } else { if (acc->current_dock == DOCK_NONE) return; ACC_CONDEV_DBG("docking station detached!!!"); switch_set_state(&acc->dock_switch, UEVENT_DOCK_NONE); acc_dock_uevent(acc, false); #ifdef CONFIG_SEC_KEYBOARD_DOCK if (acc->pdata->check_keyboard) acc->pdata->check_keyboard(false); #endif #ifdef CONFIG_MHL_SII9234 /*call MHL deinit */ MHD_HW_Off(); hdmi_msm_hpd_switch(false); /*TVout_LDO_ctrl(false); */ #endif } }