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

	}
}