Define tuner types V4L2_TUNER_ADC and V4L2_TUNER_RF for SDR usage. ADC is used for setting sampling rate (sampling frequency) to SDR device. Another tuner type, named as V4L2_TUNER_RF, is possible RF tuner. Is is used to down-convert RF frequency to range ADC could sample. Having RF tuner is optional, whilst in practice it is almost always there. Also add checks to VIDIOC_G_FREQUENCY, VIDIOC_S_FREQUENCY and VIDIOC_ENUM_FREQ_BANDS only allow these two tuner types when device type is SDR (VFL_TYPE_SDR). For VIDIOC_G_FREQUENCY we do not check tuner type, instead override type with V4L2_TUNER_ADC in every case (requested by Hans in order to keep functionality in line with existing tuners and existing API does not specify it). Prohibit VIDIOC_S_HW_FREQ_SEEK explicitly when device type is SDR, as device cannot do hardware seek without a hardware demodulator.
Showing the changes to include/uapi/linux (1 of 2 files). Show all
Unified · Split
| @@ -159,6 +159,8 @@ enum v4l2_tuner_type { · 158 unmodified lines | |||
| 159 | V4L2_TUNER_RADIO = 1, | 159 | V4L2_TUNER_RADIO = 1, |
| 160 | V4L2_TUNER_ANALOG_TV = 2, | 160 | V4L2_TUNER_ANALOG_TV = 2, |
| 161 | V4L2_TUNER_DIGITAL_TV = 3, | 161 | V4L2_TUNER_DIGITAL_TV = 3, |
| 162 | V4L2_TUNER_ADC = 4, | ||
| 163 | V4L2_TUNER_RF = 5, | ||
| 162 | }; | 164 | }; |
| 163 | 165 | ||
| 164 | enum v4l2_memory { | 166 | enum v4l2_memory { |