static int si470x_start_usb(struct si470x_device *radio) { int retval; /* initialize interrupt urb */ usb_fill_int_urb(radio->int_in_urb, radio->usbdev, usb_rcvintpipe(radio->usbdev, radio->int_in_endpoint->bEndpointAddress), radio->int_in_buffer, le16_to_cpu(radio->int_in_endpoint->wMaxPacketSize), si470x_int_in_callback, radio, radio->int_in_endpoint->bInterval); radio->int_in_running = 1; mb(); retval = usb_submit_urb(radio->int_in_urb, GFP_KERNEL); if (retval) { dev_info(&radio->intf->dev, "submitting int urb failed (%d)\n", retval); radio->int_in_running = 0; } radio->status_rssi_auto_update = radio->int_in_running; /* start radio */ retval = si470x_start(radio); if (retval < 0) return retval; v4l2_ctrl_handler_setup(&radio->hdl); return retval; }
/* * si470x_fops_open - file open */ int si470x_fops_open(struct file *file) { struct si470x_device *radio = video_drvdata(file); int retval = 0; mutex_lock(&radio->lock); radio->users++; if (radio->users == 1) { /* start radio */ retval = si470x_start(radio); if (retval < 0) goto done; /* enable RDS / STC interrupt */ radio->registers[SYSCONFIG1] |= SYSCONFIG1_RDSIEN; radio->registers[SYSCONFIG1] |= SYSCONFIG1_STCIEN; radio->registers[SYSCONFIG1] &= ~SYSCONFIG1_GPIO2; radio->registers[SYSCONFIG1] |= 0x1 << 2; retval = si470x_set_register(radio, SYSCONFIG1); } done: mutex_unlock(&radio->lock); return retval; }
/* * si470x_fops_open - file open */ static int si470x_fops_open(struct file *file) { struct si470x_device *radio = video_drvdata(file); int retval; lock_kernel(); radio->users++; retval = usb_autopm_get_interface(radio->intf); if (retval < 0) { radio->users--; retval = -EIO; goto done; } if (radio->users == 1) { /* start radio */ retval = si470x_start(radio); if (retval < 0) usb_autopm_put_interface(radio->intf); } done: unlock_kernel(); return retval; }
int si470x_fops_open(struct file *file) { struct si470x_device *radio = video_drvdata(file); int retval; mutex_lock(&radio->lock); radio->users++; retval = usb_autopm_get_interface(radio->intf); if (retval < 0) { radio->users--; retval = -EIO; goto done; } if (radio->users == 1) { /* */ retval = si470x_start(radio); if (retval < 0) { usb_autopm_put_interface(radio->intf); goto done; } /* */ usb_fill_int_urb(radio->int_in_urb, radio->usbdev, usb_rcvintpipe(radio->usbdev, radio->int_in_endpoint->bEndpointAddress), radio->int_in_buffer, le16_to_cpu(radio->int_in_endpoint->wMaxPacketSize), si470x_int_in_callback, radio, radio->int_in_endpoint->bInterval); radio->int_in_running = 1; mb(); retval = usb_submit_urb(radio->int_in_urb, GFP_KERNEL); if (retval) { dev_info(&radio->intf->dev, "submitting int urb failed (%d)\n", retval); radio->int_in_running = 0; usb_autopm_put_interface(radio->intf); } } done: mutex_unlock(&radio->lock); return retval; }
/* * si470x_fops_open - file open */ int si470x_fops_open(struct file *file) { struct si470x_device *radio = video_drvdata(file); int retval = 0; mutex_lock(&radio->lock); radio->users++; if (radio->users == 1) { /* start radio */ retval = si470x_start(radio); if (retval < 0) goto done; <<<<<<< HEAD
/* * si470x_fops_open - file open */ static int si470x_fops_open(struct inode *inode, struct file *file) { struct si470x_device *radio = video_get_drvdata(video_devdata(file)); int retval; radio->users++; retval = usb_autopm_get_interface(radio->intf); if (retval < 0) { radio->users--; return -EIO; } if (radio->users == 1) { retval = si470x_start(radio); if (retval < 0) usb_autopm_put_interface(radio->intf); return retval; } return 0; }