Esempio n. 1
0
static int usf_open(struct inode *inode, struct file *file)
{
    struct usf_type *usf =  NULL;
    uint16_t dev_ind = 0;
    int minor = MINOR(inode->i_rdev);

    dev_ind = add_opened_dev(minor);
    if (dev_ind == USF_UNDEF_DEV_ID)
        return -EBUSY;

    usf = kzalloc(sizeof(struct usf_type), GFP_KERNEL);
    if (usf == NULL) {
        pr_err("%s:usf allocation failed\n", __func__);
        return -ENOMEM;
    }

    file->private_data = usf;
    usf->dev_ind = dev_ind;

    usf->usf_tx.usf_state = USF_OPENED_STATE;
    usf->usf_rx.usf_state = USF_OPENED_STATE;

    usf->usf_tx.us_detect_type = USF_US_DETECT_UNDEF;
    usf->usf_rx.us_detect_type = USF_US_DETECT_UNDEF;

    pr_debug("%s:usf in open\n", __func__);
    return 0;
}
Esempio n. 2
0
static int usf_open(struct inode *inode, struct file *file)
{
	struct usf_type *usf =  NULL;
	uint16_t dev_ind = 0;
	int minor = MINOR(inode->i_rdev);
	mutex_lock(&session_lock);
	dev_ind = add_opened_dev(minor);
	if (dev_ind == USF_UNDEF_DEV_ID) {
		mutex_unlock(&session_lock);
		return -EBUSY;
	}

	usf = kzalloc(sizeof(struct usf_type), GFP_KERNEL);
	if (usf == NULL) {
		pr_err("%s:usf allocation failed\n", __func__);
		mutex_unlock(&session_lock);
		return -ENOMEM;
	}

	file->private_data = usf;
	usf->dev_ind = dev_ind;

	usf->usf_tx.usf_state = USF_OPENED_STATE;
	usf->usf_rx.usf_state = USF_OPENED_STATE;

	usf->usf_tx.us_detect_type = USF_US_DETECT_UNDEF;
	usf->usf_rx.us_detect_type = USF_US_DETECT_UNDEF;
#ifdef SKY_ULTRASOUNDPEN_FEATURE
	touch_clear_finger(0);
#endif

	pr_debug("%s:usf in open\n", __func__);
	mutex_unlock(&session_lock);
	return 0;
}