radio: iris: Fixed the issue with RDS configuration
This patch configures the rds registers properly
CRs-fixed: 298431
Signed-off-by: Srinivasa Rao Uppala <uppalas@codeaurora.org>
diff --git a/drivers/media/radio/radio-iris.c b/drivers/media/radio/radio-iris.c
index 4391dba..f57b5e8 100644
--- a/drivers/media/radio/radio-iris.c
+++ b/drivers/media/radio/radio-iris.c
@@ -1979,13 +1979,12 @@
ctrl->value = radio->rds_grp.rds_grp_enable_mask;
break;
case V4L2_CID_PRIVATE_IRIS_RDSGROUP_PROC:
+ case V4L2_CID_PRIVATE_IRIS_PSALL:
+ ctrl->value = (radio->g_rds_grp_proc_ps << RDS_CONFIG_OFFSET);
break;
case V4L2_CID_PRIVATE_IRIS_RDSD_BUF:
ctrl->value = radio->rds_grp.rds_buf_size;
break;
- case V4L2_CID_PRIVATE_IRIS_PSALL:
- ctrl->value = radio->g_rds_grp_proc_ps;
- break;
case V4L2_CID_PRIVATE_IRIS_LP_MODE:
break;
case V4L2_CID_PRIVATE_IRIS_ANTENNA:
@@ -2126,15 +2125,20 @@
break;
case V4L2_CID_PRIVATE_IRIS_RDSGROUP_PROC:
rds_grps_proc = radio->g_rds_grp_proc_ps | ctrl->value;
+ radio->g_rds_grp_proc_ps = (rds_grps_proc >> RDS_CONFIG_OFFSET);
retval = hci_fm_rds_grps_process(
- &rds_grps_proc,
+ &radio->g_rds_grp_proc_ps,
radio->fm_hdev);
break;
case V4L2_CID_PRIVATE_IRIS_RDSD_BUF:
radio->rds_grp.rds_buf_size = ctrl->value;
break;
case V4L2_CID_PRIVATE_IRIS_PSALL:
- radio->g_rds_grp_proc_ps = ctrl->value;
+ rds_grps_proc = (ctrl->value << RDS_CONFIG_OFFSET);
+ radio->g_rds_grp_proc_ps |= rds_grps_proc;
+ retval = hci_fm_rds_grps_process(
+ &radio->g_rds_grp_proc_ps,
+ radio->fm_hdev);
break;
case V4L2_CID_PRIVATE_IRIS_LP_MODE:
break;
diff --git a/include/media/radio-iris.h b/include/media/radio-iris.h
index 79a71244..9353a99 100644
--- a/include/media/radio-iris.h
+++ b/include/media/radio-iris.h
@@ -426,6 +426,7 @@
#define RDS_PS_LENGTH_OFFSET 7
#define RDS_STRING 8
#define RDS_PS_DATA_OFFSET 8
+#define RDS_CONFIG_OFFSET 3
/*FM states*/