Merge remote-tracking branches 'asoc/topic/simple' and 'asoc/topic/sirf' into asoc...
[firefly-linux-kernel-4.4.55.git] / drivers / media / common / tveeprom.c
index cc1e172dfece66dccafe3dc03f27a4957d85ecb8..c7dace671a9d13b8f8e42b661fca57cdb34f2638 100644 (file)
@@ -40,7 +40,6 @@
 #include <media/tuner.h>
 #include <media/tveeprom.h>
 #include <media/v4l2-common.h>
-#include <media/v4l2-chip-ident.h>
 
 MODULE_DESCRIPTION("i2c Hauppauge eeprom decoder driver");
 MODULE_AUTHOR("John Klar");
@@ -67,13 +66,10 @@ MODULE_PARM_DESC(debug, "Debug level (0-1)");
  * The Hauppauge eeprom uses an 8bit field to determine which
  * tuner formats the tuner supports.
  */
-static struct HAUPPAUGE_TUNER_FMT
-{
+static const struct {
        int     id;
-       char *name;
-}
-hauppauge_tuner_fmt[] =
-{
+       const char * const name;
+} hauppauge_tuner_fmt[] = {
        { V4L2_STD_UNKNOWN,                   " UNKNOWN" },
        { V4L2_STD_UNKNOWN,                   " FM" },
        { V4L2_STD_B|V4L2_STD_GH,             " PAL(B/G)" },
@@ -88,13 +84,10 @@ hauppauge_tuner_fmt[] =
    supplying this information. Note that many tuners where only used for
    testing and never made it to the outside world. So you will only see
    a subset in actual produced cards. */
-static struct HAUPPAUGE_TUNER
-{
+static const struct {
        int  id;
-       char *name;
-}
-hauppauge_tuner[] =
-{
+       const char * const name;
+} hauppauge_tuner[] = {
        /* 0-9 */
        { TUNER_ABSENT,                 "None" },
        { TUNER_ABSENT,                 "External" },
@@ -298,69 +291,66 @@ hauppauge_tuner[] =
        { TUNER_ABSENT,                 "NXP 18272S"},
 };
 
-/* Use V4L2_IDENT_AMBIGUOUS for those audio 'chips' that are
+/* Use TVEEPROM_AUDPROC_INTERNAL for those audio 'chips' that are
  * internal to a video chip, i.e. not a separate audio chip. */
-static struct HAUPPAUGE_AUDIOIC
-{
+static const struct {
        u32   id;
-       char *name;
-}
-audioIC[] =
-{
+       const char * const name;
+} audio_ic[] = {
        /* 0-4 */
-       { V4L2_IDENT_NONE,      "None"      },
-       { V4L2_IDENT_UNKNOWN,   "TEA6300"   },
-       { V4L2_IDENT_UNKNOWN,   "TEA6320"   },
-       { V4L2_IDENT_UNKNOWN,   "TDA9850"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP3400C"  },
+       { TVEEPROM_AUDPROC_NONE,  "None"      },
+       { TVEEPROM_AUDPROC_OTHER, "TEA6300"   },
+       { TVEEPROM_AUDPROC_OTHER, "TEA6320"   },
+       { TVEEPROM_AUDPROC_OTHER, "TDA9850"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3400C"  },
        /* 5-9 */
-       { V4L2_IDENT_MSPX4XX,   "MSP3410D"  },
-       { V4L2_IDENT_MSPX4XX,   "MSP3415"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP3430"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP3438"   },
-       { V4L2_IDENT_UNKNOWN,   "CS5331"    },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3410D"  },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3415"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3430"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3438"   },
+       { TVEEPROM_AUDPROC_OTHER, "CS5331"    },
        /* 10-14 */
-       { V4L2_IDENT_MSPX4XX,   "MSP3435"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP3440"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP3445"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP3411"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP3416"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3435"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3440"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3445"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3411"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3416"   },
        /* 15-19 */
-       { V4L2_IDENT_MSPX4XX,   "MSP3425"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP3451"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP3418"   },
-       { V4L2_IDENT_UNKNOWN,   "Type 0x12" },
-       { V4L2_IDENT_UNKNOWN,   "OKI7716"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3425"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3451"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP3418"   },
+       { TVEEPROM_AUDPROC_OTHER, "Type 0x12" },
+       { TVEEPROM_AUDPROC_OTHER, "OKI7716"   },
        /* 20-24 */
-       { V4L2_IDENT_MSPX4XX,   "MSP4410"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP4420"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP4440"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP4450"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP4408"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP4410"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP4420"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP4440"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP4450"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP4408"   },
        /* 25-29 */
-       { V4L2_IDENT_MSPX4XX,   "MSP4418"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP4428"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP4448"   },
-       { V4L2_IDENT_MSPX4XX,   "MSP4458"   },
-       { V4L2_IDENT_MSPX4XX,   "Type 0x1d" },
+       { TVEEPROM_AUDPROC_MSP,   "MSP4418"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP4428"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP4448"   },
+       { TVEEPROM_AUDPROC_MSP,   "MSP4458"   },
+       { TVEEPROM_AUDPROC_MSP,   "Type 0x1d" },
        /* 30-34 */
-       { V4L2_IDENT_AMBIGUOUS, "CX880"     },
-       { V4L2_IDENT_AMBIGUOUS, "CX881"     },
-       { V4L2_IDENT_AMBIGUOUS, "CX883"     },
-       { V4L2_IDENT_AMBIGUOUS, "CX882"     },
-       { V4L2_IDENT_AMBIGUOUS, "CX25840"   },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX880"     },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX881"     },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX883"     },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX882"     },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX25840"   },
        /* 35-39 */
-       { V4L2_IDENT_AMBIGUOUS, "CX25841"   },
-       { V4L2_IDENT_AMBIGUOUS, "CX25842"   },
-       { V4L2_IDENT_AMBIGUOUS, "CX25843"   },
-       { V4L2_IDENT_AMBIGUOUS, "CX23418"   },
-       { V4L2_IDENT_AMBIGUOUS, "CX23885"   },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX25841"   },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX25842"   },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX25843"   },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX23418"   },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX23885"   },
        /* 40-44 */
-       { V4L2_IDENT_AMBIGUOUS, "CX23888"   },
-       { V4L2_IDENT_AMBIGUOUS, "SAA7131"   },
-       { V4L2_IDENT_AMBIGUOUS, "CX23887"   },
-       { V4L2_IDENT_AMBIGUOUS, "SAA7164"   },
-       { V4L2_IDENT_AMBIGUOUS, "AU8522"    },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX23888"   },
+       { TVEEPROM_AUDPROC_INTERNAL, "SAA7131"   },
+       { TVEEPROM_AUDPROC_INTERNAL, "CX23887"   },
+       { TVEEPROM_AUDPROC_INTERNAL, "SAA7164"   },
+       { TVEEPROM_AUDPROC_INTERNAL, "AU8522"    },
 };
 
 /* This list is supplied by Hauppauge. Thanks! */
@@ -453,11 +443,11 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee,
        int i, j, len, done, beenhere, tag, start;
 
        int tuner1 = 0, t_format1 = 0, audioic = -1;
-       char *t_name1 = NULL;
+       const char *t_name1 = NULL;
        const char *t_fmt_name1[8] = { " none", "", "", "", "", "", "", "" };
 
        int tuner2 = 0, t_format2 = 0;
-       char *t_name2 = NULL;
+       const char *t_name2 = NULL;
        const char *t_fmt_name2[8] = { " none", "", "", "", "", "", "", "" };
 
        memset(tvee, 0, sizeof(*tvee));
@@ -545,10 +535,10 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee,
                        to indicate 4052 mux was removed in favor of using MSP
                        inputs directly. */
                        audioic = eeprom_data[i+2] & 0x7f;
-                       if (audioic < ARRAY_SIZE(audioIC))
-                               tvee->audio_processor = audioIC[audioic].id;
+                       if (audioic < ARRAY_SIZE(audio_ic))
+                               tvee->audio_processor = audio_ic[audioic].id;
                        else
-                               tvee->audio_processor = V4L2_IDENT_UNKNOWN;
+                               tvee->audio_processor = TVEEPROM_AUDPROC_OTHER;
                        break;
 
                /* case 0x03: tag 'EEInfo' */
@@ -578,10 +568,10 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee,
                        to indicate 4052 mux was removed in favor of using MSP
                        inputs directly. */
                        audioic = eeprom_data[i+1] & 0x7f;
-                       if (audioic < ARRAY_SIZE(audioIC))
-                               tvee->audio_processor = audioIC[audioic].id;
+                       if (audioic < ARRAY_SIZE(audio_ic))
+                               tvee->audio_processor = audio_ic[audioic].id;
                        else
-                               tvee->audio_processor = V4L2_IDENT_UNKNOWN;
+                               tvee->audio_processor = TVEEPROM_AUDPROC_OTHER;
 
                        break;
 
@@ -726,11 +716,11 @@ void tveeprom_hauppauge_analog(struct i2c_client *c, struct tveeprom *tvee,
                        t_fmt_name2[6], t_fmt_name2[7], t_format2);
        if (audioic < 0) {
                tveeprom_info("audio processor is unknown (no idx)\n");
-               tvee->audio_processor = V4L2_IDENT_UNKNOWN;
+               tvee->audio_processor = TVEEPROM_AUDPROC_OTHER;
        } else {
-               if (audioic < ARRAY_SIZE(audioIC))
+               if (audioic < ARRAY_SIZE(audio_ic))
                        tveeprom_info("audio processor is %s (idx %d)\n",
-                                       audioIC[audioic].name, audioic);
+                                       audio_ic[audioic].name, audioic);
                else
                        tveeprom_info("audio processor is unknown (idx %d)\n",
                                                                audioic);