]> Git Repo - linux.git/blobdiff - drivers/media/v4l2-core/tuner-core.c
Merge tag 's390-4.20-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[linux.git] / drivers / media / v4l2-core / tuner-core.c
index 7f858c39753c1f1aaacbe0cd70cdcb07b1cd6f21..03a340cb5a9be93a462bf5631e900ffa7961ad31 100644 (file)
@@ -94,9 +94,56 @@ static const struct v4l2_subdev_ops tuner_ops;
 } while (0)
 
 /*
- * Internal struct used inside the driver
+ * Internal enums/struct used inside the driver
  */
 
+/**
+ * enum tuner_pad_index - tuner pad index for MEDIA_ENT_F_TUNER
+ *
+ * @TUNER_PAD_RF_INPUT:
+ *     Radiofrequency (RF) sink pad, usually linked to a RF connector entity.
+ * @TUNER_PAD_OUTPUT:
+ *     tuner video output source pad. Contains the video chrominance
+ *     and luminance or the hole bandwidth of the signal converted to
+ *     an Intermediate Frequency (IF) or to baseband (on zero-IF tuners).
+ * @TUNER_PAD_AUD_OUT:
+ *     Tuner audio output source pad. Tuners used to decode analog TV
+ *     signals have an extra pad for audio output. Old tuners use an
+ *     analog stage with a saw filter for the audio IF frequency. The
+ *     output of the pad is, in this case, the audio IF, with should be
+ *     decoded either by the bridge chipset (that's the case of cx2388x
+ *     chipsets) or may require an external IF sound processor, like
+ *     msp34xx. On modern silicon tuners, the audio IF decoder is usually
+ *     incorporated at the tuner. On such case, the output of this pad
+ *     is an audio sampled data.
+ * @TUNER_NUM_PADS:
+ *     Number of pads of the tuner.
+ */
+enum tuner_pad_index {
+       TUNER_PAD_RF_INPUT,
+       TUNER_PAD_OUTPUT,
+       TUNER_PAD_AUD_OUT,
+       TUNER_NUM_PADS
+};
+
+/**
+ * enum if_vid_dec_pad_index - video IF-PLL pad index
+ *     for MEDIA_ENT_F_IF_VID_DECODER
+ *
+ * @IF_VID_DEC_PAD_IF_INPUT:
+ *     video Intermediate Frequency (IF) sink pad
+ * @IF_VID_DEC_PAD_OUT:
+ *     IF-PLL video output source pad. Contains the video chrominance
+ *     and luminance IF signals.
+ * @IF_VID_DEC_PAD_NUM_PADS:
+ *     Number of pads of the video IF-PLL.
+ */
+enum if_vid_dec_pad_index {
+       IF_VID_DEC_PAD_IF_INPUT,
+       IF_VID_DEC_PAD_OUT,
+       IF_VID_DEC_PAD_NUM_PADS
+};
+
 struct tuner {
        /* device */
        struct dvb_frontend fe;
@@ -685,15 +732,20 @@ register_client:
         */
        if (t->type == TUNER_TDA9887) {
                t->pad[IF_VID_DEC_PAD_IF_INPUT].flags = MEDIA_PAD_FL_SINK;
+               t->pad[IF_VID_DEC_PAD_IF_INPUT].sig_type = PAD_SIGNAL_ANALOG;
                t->pad[IF_VID_DEC_PAD_OUT].flags = MEDIA_PAD_FL_SOURCE;
+               t->pad[IF_VID_DEC_PAD_OUT].sig_type = PAD_SIGNAL_ANALOG;
                ret = media_entity_pads_init(&t->sd.entity,
                                             IF_VID_DEC_PAD_NUM_PADS,
                                             &t->pad[0]);
                t->sd.entity.function = MEDIA_ENT_F_IF_VID_DECODER;
        } else {
                t->pad[TUNER_PAD_RF_INPUT].flags = MEDIA_PAD_FL_SINK;
+               t->pad[TUNER_PAD_RF_INPUT].sig_type = PAD_SIGNAL_ANALOG;
                t->pad[TUNER_PAD_OUTPUT].flags = MEDIA_PAD_FL_SOURCE;
+               t->pad[TUNER_PAD_OUTPUT].sig_type = PAD_SIGNAL_ANALOG;
                t->pad[TUNER_PAD_AUD_OUT].flags = MEDIA_PAD_FL_SOURCE;
+               t->pad[TUNER_PAD_AUD_OUT].sig_type = PAD_SIGNAL_AUDIO;
                ret = media_entity_pads_init(&t->sd.entity, TUNER_NUM_PADS,
                                             &t->pad[0]);
                t->sd.entity.function = MEDIA_ENT_F_TUNER;
This page took 0.038617 seconds and 4 git commands to generate.