|  | /* SPDX-License-Identifier: GPL-2.0-only */ | 
|  | /* | 
|  | * vivid-rds-gen.h - rds (radio data system) generator support functions. | 
|  | * | 
|  | * Copyright 2014 Cisco Systems, Inc. and/or its affiliates. All rights reserved. | 
|  | */ | 
|  |  | 
|  | #ifndef _VIVID_RDS_GEN_H_ | 
|  | #define _VIVID_RDS_GEN_H_ | 
|  |  | 
|  | /* | 
|  | * It takes almost exactly 5 seconds to transmit 57 RDS groups. | 
|  | * Each group has 4 blocks and each block has a payload of 16 bits + a | 
|  | * block identification. The driver will generate the contents of these | 
|  | * 57 groups only when necessary and it will just be played continuously. | 
|  | */ | 
|  | #define VIVID_RDS_GEN_GROUPS 57 | 
|  | #define VIVID_RDS_GEN_BLKS_PER_GRP 4 | 
|  | #define VIVID_RDS_GEN_BLOCKS (VIVID_RDS_GEN_BLKS_PER_GRP * VIVID_RDS_GEN_GROUPS) | 
|  | #define VIVID_RDS_NSEC_PER_BLK (u32)(5ull * NSEC_PER_SEC / VIVID_RDS_GEN_BLOCKS) | 
|  |  | 
|  | struct vivid_rds_gen { | 
|  | struct v4l2_rds_data	data[VIVID_RDS_GEN_BLOCKS]; | 
|  | bool			use_rbds; | 
|  | u16			picode; | 
|  | u8			pty; | 
|  | bool			mono_stereo; | 
|  | bool			art_head; | 
|  | bool			compressed; | 
|  | bool			dyn_pty; | 
|  | bool			ta; | 
|  | bool			tp; | 
|  | bool			ms; | 
|  | char			psname[8 + 1]; | 
|  | char			radiotext[64 + 1]; | 
|  | }; | 
|  |  | 
|  | void vivid_rds_gen_fill(struct vivid_rds_gen *rds, unsigned freq, | 
|  | bool use_alternate); | 
|  | void vivid_rds_generate(struct vivid_rds_gen *rds); | 
|  |  | 
|  | #endif |