Esempio n. 1
0
int mtk_bt_read(int bt_fd, unsigned char *buffer, unsigned long len)
{
    int ret_val;
    
    LOG_DBG("buffer %x, len %d\n", buffer, len);

    if (!glib_handle) {
        LOG_ERR("mtk bt library is unloaded!\n");
        return -1;
    }

#ifndef MTK_COMBO_SUPPORT
    bt_hold_wake_lock(1);
    bt_arm_timer(BT_HOST_SLEEP_TIMEOUT, 0);
#endif

    ret_val = read_comm_port(bt_fd, buffer, len);

#ifndef MTK_COMBO_SUPPORT
    if (ret_val > 0)
        bt_arm_timer(BT_HOST_SLEEP_TIMEOUT, 0);
#endif

#ifdef MTK_COMBO_SUPPORT
    if (ret_val < 0 && (ret_val == -88)){
        // whole chip reset, wait it complete (errno 99)
        wait_whole_chip_reset_complete(bt_fd);
        ret_val = -99;
    }
#endif

    return ret_val;	
}
Esempio n. 2
0
int mtk_bt_write(int bt_fd, unsigned char *buffer, unsigned long len)
{
    int ret_val;
    
    LOG_DBG("buffer %x, len %d\n", buffer, len);

    if (!glib_handle){
        LOG_ERR("mtk bt library is unloaded!\n");
        return -1;
    }

#ifndef MTK_COMBO_SUPPORT
    bt_hold_wake_lock(1);
    bt_arm_timer(BT_HOST_SLEEP_TIMEOUT, 0);
    
    if (sleep_mode){
        // controller sleeps, host should wake up chip before write data
        if (bt_wake_up_chip(bt_fd) < 0){
            LOG_ERR("Wake up chip fails\n");
            return -1;
        }
        LOG_DBG("Wake up chip success\n");
        sleep_mode = 0;
    }
#endif

    ret_val = write_comm_port(bt_fd, buffer, len);

#ifndef MTK_COMBO_SUPPORT
    if (ret_val > 0)
        bt_arm_timer(BT_HOST_SLEEP_TIMEOUT, 0);
#endif

#ifdef MTK_COMBO_SUPPORT
    if (ret_val < 0 && (ret_val == -88)){
        // whole chip reset, wait it complete (errno 99)
        wait_whole_chip_reset_complete(bt_fd);
        ret_val = -99;
    }
#endif

    return ret_val;
}
Esempio n. 3
0
int mtk_bt_read(int bt_fd, unsigned char *buffer, unsigned long len)
{
    int ret_val;
    
    LOG_DBG("buffer %x, len %d\n", buffer, len);

    if (!glib_handle){
        LOG_ERR("mtk bt library is unloaded!\n");
        return -1;
    }
    
    ret_val = read_com_port(bt_fd, buffer, len);
    
    if (ret_val < 0 && (ret_val == -88)){
        // whole chip reset, wait it complete (errno 99)
        wait_whole_chip_reset_complete(bt_fd);
        ret_val = -99;
    }
    
    return ret_val;	
}