diff options
Diffstat (limited to 'drivers/media/radio/CG2900/cg2900_fm_driver.c')
-rw-r--r-- | drivers/media/radio/CG2900/cg2900_fm_driver.c | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/drivers/media/radio/CG2900/cg2900_fm_driver.c b/drivers/media/radio/CG2900/cg2900_fm_driver.c index 95680534e11..627d0f2d674 100644 --- a/drivers/media/radio/CG2900/cg2900_fm_driver.c +++ b/drivers/media/radio/CG2900/cg2900_fm_driver.c @@ -3259,6 +3259,47 @@ error: return err; } +int fmd_rx_set_rds_group_rejection( + u8 on_off_state + ) +{ + int err; + int io_result; + u16 parameters[CMD_DP_SET_GROUP_REJECTION_PARAM_LEN]; + + if (fmd_go_cmd_busy()) { + err = -EBUSY; + goto error; + } + + if (!fmd_state_info.fmd_initialized) { + err = -ENOEXEC; + goto error; + } + + if (on_off_state == FMD_RDS_GROUP_REJECTION_ON) + parameters[0] = 0x0001; + else if (on_off_state == FMD_RDS_GROUP_REJECTION_OFF) + parameters[0] = 0x0000; + + io_result = fmd_send_cmd_and_read_resp( + CMD_FMR_DP_SET_GROUP_REJECTION, + CMD_DP_SET_GROUP_REJECTION_PARAM_LEN, + parameters, + NULL, + NULL); + + if (io_result != 0) { + err = io_result; + goto error; + } + + err = 0; + +error: + return err; +} + int fmd_rx_get_low_level_rds_groups( u8 index, u16 *block1, |