Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dd328275 authored by Douglas Fischer's avatar Douglas Fischer Committed by Mauro Carvalho Chehab
Browse files

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: default avatarDouglas Fischer <fischerdouglasc@gmail.com>
[hans.verkuil@cisco.com: fixed 80 column checkpatch warning]
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 8c081b6f
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -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;
+2 −0
Original line number Diff line number Diff line
@@ -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 */