V4L/DVB (10531): Code rearrangements in preparation for other report types
LED_REPORT and all flash REPORTs are on it's way. This code rearrangement cleans up the code for proper integration later on. Signed-off-by: Tobias Lorenz <tobias.lorenz@gmx.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
00ec8d0799
commit
7f53b35c2b
|
@ -481,7 +481,7 @@ struct si470x_device {
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* General Driver Functions
|
* General Driver Functions - REGISTER_REPORTs
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -566,60 +566,6 @@ static int si470x_set_register(struct si470x_device *radio, int regnr)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* si470x_get_all_registers - read entire registers
|
|
||||||
*/
|
|
||||||
static int si470x_get_all_registers(struct si470x_device *radio)
|
|
||||||
{
|
|
||||||
unsigned char buf[ENTIRE_REPORT_SIZE];
|
|
||||||
int retval;
|
|
||||||
unsigned char regnr;
|
|
||||||
|
|
||||||
buf[0] = ENTIRE_REPORT;
|
|
||||||
|
|
||||||
retval = si470x_get_report(radio, (void *) &buf, sizeof(buf));
|
|
||||||
|
|
||||||
if (retval >= 0)
|
|
||||||
for (regnr = 0; regnr < RADIO_REGISTER_NUM; regnr++)
|
|
||||||
radio->registers[regnr] = get_unaligned_be16(
|
|
||||||
&buf[regnr * RADIO_REGISTER_SIZE + 1]);
|
|
||||||
|
|
||||||
return (retval < 0) ? -EINVAL : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* si470x_get_rds_registers - read rds registers
|
|
||||||
*/
|
|
||||||
static int si470x_get_rds_registers(struct si470x_device *radio)
|
|
||||||
{
|
|
||||||
unsigned char buf[RDS_REPORT_SIZE];
|
|
||||||
int retval;
|
|
||||||
int size;
|
|
||||||
unsigned char regnr;
|
|
||||||
|
|
||||||
buf[0] = RDS_REPORT;
|
|
||||||
|
|
||||||
retval = usb_interrupt_msg(radio->usbdev,
|
|
||||||
usb_rcvintpipe(radio->usbdev, 1),
|
|
||||||
(void *) &buf, sizeof(buf), &size, usb_timeout);
|
|
||||||
if (size != sizeof(buf))
|
|
||||||
printk(KERN_WARNING DRIVER_NAME ": si470x_get_rds_registers: "
|
|
||||||
"return size differs: %d != %zu\n", size, sizeof(buf));
|
|
||||||
if (retval < 0)
|
|
||||||
printk(KERN_WARNING DRIVER_NAME ": si470x_get_rds_registers: "
|
|
||||||
"usb_interrupt_msg returned %d\n", retval);
|
|
||||||
|
|
||||||
if (retval >= 0)
|
|
||||||
for (regnr = 0; regnr < RDS_REGISTER_NUM; regnr++)
|
|
||||||
radio->registers[STATUSRSSI + regnr] =
|
|
||||||
get_unaligned_be16(
|
|
||||||
&buf[regnr * RADIO_REGISTER_SIZE + 1]);
|
|
||||||
|
|
||||||
return (retval < 0) ? -EINVAL : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* si470x_set_chan - set the channel
|
* si470x_set_chan - set the channel
|
||||||
*/
|
*/
|
||||||
|
@ -911,6 +857,70 @@ static int si470x_set_led_state(struct si470x_device *radio,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* General Driver Functions - ENTIRE_REPORT
|
||||||
|
**************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* si470x_get_all_registers - read entire registers
|
||||||
|
*/
|
||||||
|
static int si470x_get_all_registers(struct si470x_device *radio)
|
||||||
|
{
|
||||||
|
unsigned char buf[ENTIRE_REPORT_SIZE];
|
||||||
|
int retval;
|
||||||
|
unsigned char regnr;
|
||||||
|
|
||||||
|
buf[0] = ENTIRE_REPORT;
|
||||||
|
|
||||||
|
retval = si470x_get_report(radio, (void *) &buf, sizeof(buf));
|
||||||
|
|
||||||
|
if (retval >= 0)
|
||||||
|
for (regnr = 0; regnr < RADIO_REGISTER_NUM; regnr++)
|
||||||
|
radio->registers[regnr] = get_unaligned_be16(
|
||||||
|
&buf[regnr * RADIO_REGISTER_SIZE + 1]);
|
||||||
|
|
||||||
|
return (retval < 0) ? -EINVAL : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
* General Driver Functions - RDS_REPORT
|
||||||
|
**************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* si470x_get_rds_registers - read rds registers
|
||||||
|
*/
|
||||||
|
static int si470x_get_rds_registers(struct si470x_device *radio)
|
||||||
|
{
|
||||||
|
unsigned char buf[RDS_REPORT_SIZE];
|
||||||
|
int retval;
|
||||||
|
int size;
|
||||||
|
unsigned char regnr;
|
||||||
|
|
||||||
|
buf[0] = RDS_REPORT;
|
||||||
|
|
||||||
|
retval = usb_interrupt_msg(radio->usbdev,
|
||||||
|
usb_rcvintpipe(radio->usbdev, 1),
|
||||||
|
(void *) &buf, sizeof(buf), &size, usb_timeout);
|
||||||
|
if (size != sizeof(buf))
|
||||||
|
printk(KERN_WARNING DRIVER_NAME ": si470x_get_rds_registers: "
|
||||||
|
"return size differs: %d != %zu\n", size, sizeof(buf));
|
||||||
|
if (retval < 0)
|
||||||
|
printk(KERN_WARNING DRIVER_NAME ": si470x_get_rds_registers: "
|
||||||
|
"usb_interrupt_msg returned %d\n", retval);
|
||||||
|
|
||||||
|
if (retval >= 0)
|
||||||
|
for (regnr = 0; regnr < RDS_REGISTER_NUM; regnr++)
|
||||||
|
radio->registers[STATUSRSSI + regnr] =
|
||||||
|
get_unaligned_be16(
|
||||||
|
&buf[regnr * RADIO_REGISTER_SIZE + 1]);
|
||||||
|
|
||||||
|
return (retval < 0) ? -EINVAL : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* RDS Driver Functions
|
* RDS Driver Functions
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
@ -1125,6 +1135,7 @@ static int si470x_fops_open(struct file *file)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (radio->users == 1) {
|
if (radio->users == 1) {
|
||||||
|
/* start radio */
|
||||||
retval = si470x_start(radio);
|
retval = si470x_start(radio);
|
||||||
if (retval < 0)
|
if (retval < 0)
|
||||||
usb_autopm_put_interface(radio->intf);
|
usb_autopm_put_interface(radio->intf);
|
||||||
|
@ -1166,6 +1177,7 @@ static int si470x_fops_release(struct file *file)
|
||||||
/* cancel read processes */
|
/* cancel read processes */
|
||||||
wake_up_interruptible(&radio->read_queue);
|
wake_up_interruptible(&radio->read_queue);
|
||||||
|
|
||||||
|
/* stop radio */
|
||||||
retval = si470x_stop(radio);
|
retval = si470x_stop(radio);
|
||||||
usb_autopm_put_interface(radio->intf);
|
usb_autopm_put_interface(radio->intf);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue