media: radio: Critical interrupt bugfix for si470x over i2c
Fixed si470x_start() disabling the interrupt signal, causing tune operations to never complete. This does not affect USB radios because they poll the registers instead of using the IRQ line. Signed-off-by: Douglas Fischer <fischerdouglasc@gmail.com> [hans.verkuil@cisco.com: fixed 80 column checkpatch warning] Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
This commit is contained in:
parent
8c081b6f9a
commit
dd328275e9
|
@ -386,8 +386,12 @@ int si470x_start(struct si470x_device *radio)
|
|||
goto done;
|
||||
|
||||
/* sysconfig 1 */
|
||||
radio->registers[SYSCONFIG1] =
|
||||
(de << 11) & SYSCONFIG1_DE; /* DE*/
|
||||
radio->registers[SYSCONFIG1] |= SYSCONFIG1_RDSIEN | SYSCONFIG1_STCIEN |
|
||||
SYSCONFIG1_RDS;
|
||||
radio->registers[SYSCONFIG1] &= ~SYSCONFIG1_GPIO2;
|
||||
radio->registers[SYSCONFIG1] |= SYSCONFIG1_GPIO2_INT;
|
||||
if (de)
|
||||
radio->registers[SYSCONFIG1] |= SYSCONFIG1_DE;
|
||||
retval = si470x_set_register(radio, SYSCONFIG1);
|
||||
if (retval < 0)
|
||||
goto done;
|
||||
|
|
|
@ -79,6 +79,8 @@
|
|||
#define SYSCONFIG1_BLNDADJ 0x00c0 /* bits 07..06: Stereo/Mono Blend Level Adjustment */
|
||||
#define SYSCONFIG1_GPIO3 0x0030 /* bits 05..04: General Purpose I/O 3 */
|
||||
#define SYSCONFIG1_GPIO2 0x000c /* bits 03..02: General Purpose I/O 2 */
|
||||
#define SYSCONFIG1_GPIO2_DIS 0x0000 /* Disable GPIO 2 interrupt */
|
||||
#define SYSCONFIG1_GPIO2_INT 0x0004 /* Enable STC/RDS interrupt */
|
||||
#define SYSCONFIG1_GPIO1 0x0003 /* bits 01..00: General Purpose I/O 1 */
|
||||
|
||||
#define SYSCONFIG2 5 /* System Configuration 2 */
|
||||
|
|
Loading…
Reference in New Issue