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

Commit fb85b6b8 authored by Venkateshwarlu Domakonda's avatar Venkateshwarlu Domakonda
Browse files

radio: iris: Fix the sleep power issue



- In sleep, 3A group RDS is not disabled. SOC processing 3A group and
  sending events to HOST. APPS processor getting wakup for every 500msec.
- Disabled 3A group RDS in sleep and enabled back in resume.

CRs-Fixed: 854139
Change-Id: I2db17c539ba03e7a75e2ec05114a4dc21fabd1a5
Signed-off-by: default avatarVenkateshwarlu Domakonda <vdomak@codeaurora.org>
parent 79a20546
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -3089,6 +3089,7 @@ static int set_low_power_mode(struct iris_device *radio, int power_mode)

	int rds_grps_proc = 0x00;
	int retval = 0;
	struct hci_fm_rds_grp_req grp_3a;

	if (unlikely(radio == NULL)) {
		FMDERR(":radio is null");
@@ -3098,6 +3099,13 @@ static int set_low_power_mode(struct iris_device *radio, int power_mode)
	if (radio->power_mode != power_mode) {

		if (power_mode) {
			memcpy(&grp_3a, &radio->rds_grp,
					sizeof(struct hci_fm_rds_grp_req));
			/* Disable 3A group */
			grp_3a.rds_grp_enable_mask &= ~FM_RDS_3A_GRP;
			retval = hci_fm_rds_grp(&grp_3a, radio->fm_hdev);
			if (retval < 0)
				FMDERR("error in disable 3A group mask\n");
			radio->event_mask = 0x00;
			if (radio->af_jump_bit)
				rds_grps_proc = 0x00 | AF_JUMP_ENABLE;
@@ -3113,7 +3121,11 @@ static int set_low_power_mode(struct iris_device *radio, int power_mode)
			retval = hci_conf_event_mask(&radio->event_mask,
				radio->fm_hdev);
		} else {

			/* Enable RDS group to normal */
			retval = hci_fm_rds_grp(&radio->rds_grp,
							radio->fm_hdev);
			if (retval < 0)
				FMDERR("error in enable 3A group mask\n");
			radio->event_mask = SIG_LEVEL_INTR |
					RDS_SYNC_INTR | AUDIO_CTRL_INTR;
			retval = hci_conf_event_mask(&radio->event_mask,
+1 −0
Original line number Diff line number Diff line
@@ -136,6 +136,7 @@
#define RADIO_HCI_TIMEOUT	(10000)	/* 10 seconds */

#define TUNE_PARAM 16
#define FM_RDS_3A_GRP (0x40)
struct radio_hci_command_hdr {
	__le16	opcode;		/* OCF & OGF */
	__u8	plen;