GNU Linux-libre 4.19.264-gnu1
[releases.git] / drivers / media / dvb-frontends / cxd2880 / cxd2880_tnrdmd_dvbt2_mon.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * cxd2880_tnrdmd_dvbt2_mon.h
4  * Sony CXD2880 DVB-T2/T tuner + demodulator driver
5  * DVB-T2 monitor interface
6  *
7  * Copyright (C) 2016, 2017, 2018 Sony Semiconductor Solutions Corporation
8  */
9
10 #ifndef CXD2880_TNRDMD_DVBT2_MON_H
11 #define CXD2880_TNRDMD_DVBT2_MON_H
12
13 #include "cxd2880_tnrdmd.h"
14 #include "cxd2880_dvbt2.h"
15
16 int cxd2880_tnrdmd_dvbt2_mon_sync_stat(struct cxd2880_tnrdmd
17                                        *tnr_dmd, u8 *sync_stat,
18                                        u8 *ts_lock_stat,
19                                        u8 *unlock_detected);
20
21 int cxd2880_tnrdmd_dvbt2_mon_sync_stat_sub(struct cxd2880_tnrdmd
22                                            *tnr_dmd,
23                                            u8 *sync_stat,
24                                            u8 *unlock_detected);
25
26 int cxd2880_tnrdmd_dvbt2_mon_carrier_offset(struct cxd2880_tnrdmd
27                                             *tnr_dmd, int *offset);
28
29 int cxd2880_tnrdmd_dvbt2_mon_carrier_offset_sub(struct
30                                                 cxd2880_tnrdmd
31                                                 *tnr_dmd,
32                                                 int *offset);
33
34 int cxd2880_tnrdmd_dvbt2_mon_l1_pre(struct cxd2880_tnrdmd *tnr_dmd,
35                                     struct cxd2880_dvbt2_l1pre
36                                     *l1_pre);
37
38 int cxd2880_tnrdmd_dvbt2_mon_version(struct cxd2880_tnrdmd
39                                      *tnr_dmd,
40                                      enum cxd2880_dvbt2_version
41                                      *ver);
42
43 int cxd2880_tnrdmd_dvbt2_mon_ofdm(struct cxd2880_tnrdmd *tnr_dmd,
44                                   struct cxd2880_dvbt2_ofdm *ofdm);
45
46 int cxd2880_tnrdmd_dvbt2_mon_data_plps(struct cxd2880_tnrdmd
47                                        *tnr_dmd, u8 *plp_ids,
48                                        u8 *num_plps);
49
50 int cxd2880_tnrdmd_dvbt2_mon_active_plp(struct cxd2880_tnrdmd
51                                         *tnr_dmd,
52                                         enum
53                                         cxd2880_dvbt2_plp_btype
54                                         type,
55                                         struct cxd2880_dvbt2_plp
56                                         *plp_info);
57
58 int cxd2880_tnrdmd_dvbt2_mon_data_plp_error(struct cxd2880_tnrdmd
59                                             *tnr_dmd,
60                                             u8 *plp_error);
61
62 int cxd2880_tnrdmd_dvbt2_mon_l1_change(struct cxd2880_tnrdmd
63                                        *tnr_dmd, u8 *l1_change);
64
65 int cxd2880_tnrdmd_dvbt2_mon_l1_post(struct cxd2880_tnrdmd
66                                      *tnr_dmd,
67                                      struct cxd2880_dvbt2_l1post
68                                      *l1_post);
69
70 int cxd2880_tnrdmd_dvbt2_mon_bbheader(struct cxd2880_tnrdmd
71                                       *tnr_dmd,
72                                       enum cxd2880_dvbt2_plp_btype
73                                       type,
74                                       struct cxd2880_dvbt2_bbheader
75                                       *bbheader);
76
77 int cxd2880_tnrdmd_dvbt2_mon_in_bandb_ts_rate(struct cxd2880_tnrdmd
78                                               *tnr_dmd,
79                                               enum
80                                               cxd2880_dvbt2_plp_btype
81                                               type,
82                                               u32 *ts_rate_bps);
83
84 int cxd2880_tnrdmd_dvbt2_mon_spectrum_sense(struct cxd2880_tnrdmd
85                                             *tnr_dmd,
86                                             enum
87                                             cxd2880_tnrdmd_spectrum_sense
88                                             *sense);
89
90 int cxd2880_tnrdmd_dvbt2_mon_snr(struct cxd2880_tnrdmd *tnr_dmd,
91                                  int *snr);
92
93 int cxd2880_tnrdmd_dvbt2_mon_snr_diver(struct cxd2880_tnrdmd
94                                        *tnr_dmd, int *snr,
95                                        int *snr_main,
96                                        int *snr_sub);
97
98 int cxd2880_tnrdmd_dvbt2_mon_packet_error_number(struct
99                                                  cxd2880_tnrdmd
100                                                  *tnr_dmd,
101                                                  u32 *pen);
102
103 int cxd2880_tnrdmd_dvbt2_mon_sampling_offset(struct cxd2880_tnrdmd
104                                              *tnr_dmd, int *ppm);
105
106 int cxd2880_tnrdmd_dvbt2_mon_sampling_offset_sub(struct
107                                                  cxd2880_tnrdmd
108                                                  *tnr_dmd,
109                                                  int *ppm);
110
111 int cxd2880_tnrdmd_dvbt2_mon_qam(struct cxd2880_tnrdmd *tnr_dmd,
112                                  enum cxd2880_dvbt2_plp_btype type,
113                                  enum cxd2880_dvbt2_plp_constell
114                                  *qam);
115
116 int cxd2880_tnrdmd_dvbt2_mon_code_rate(struct cxd2880_tnrdmd
117                                        *tnr_dmd,
118                                        enum cxd2880_dvbt2_plp_btype
119                                        type,
120                                        enum
121                                        cxd2880_dvbt2_plp_code_rate
122                                        *code_rate);
123
124 int cxd2880_tnrdmd_dvbt2_mon_profile(struct cxd2880_tnrdmd
125                                      *tnr_dmd,
126                                      enum cxd2880_dvbt2_profile
127                                      *profile);
128
129 int cxd2880_tnrdmd_dvbt2_mon_ssi(struct cxd2880_tnrdmd *tnr_dmd,
130                                  u8 *ssi);
131
132 int cxd2880_tnrdmd_dvbt2_mon_ssi_sub(struct cxd2880_tnrdmd
133                                      *tnr_dmd, u8 *ssi);
134
135 #endif