ALSA: asihpi: New I/O types - AVB & BLUlink, DAB Rf receiver
authorEliot Blennerhassett <eliot@blennerhassett.gen.nz>
Thu, 20 Nov 2014 03:22:49 +0000 (16:22 +1300)
committerTakashi Iwai <tiwai@suse.de>
Sat, 22 Nov 2014 21:25:51 +0000 (22:25 +0100)
Audio cards wth have AVB or BLU Link IO.
Tuner card with DAB receiver

Signed-off-by: Eliot Blennerhassett <eliot@blennerhassett.gen.nz>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/asihpi/asihpi.c
sound/pci/asihpi/hpi.h

index 0e130dd..628ef7f 100644 (file)
@@ -109,7 +109,7 @@ static int adapter_fs = DEFAULT_SAMPLERATE;
 struct clk_source {
        int source;
        int index;
-       char *name;
+       const char *name;
 };
 
 struct clk_cache {
@@ -1292,8 +1292,9 @@ static const char * const asihpi_tuner_band_names[] = {
        "TV PAL I",
        "TV PAL DK",
        "TV SECAM",
+       "TV DAB",
 };
-
+/* Number of strings must match the enumerations for HPI_TUNER_BAND in hpi.h */
 compile_time_assert(
        (ARRAY_SIZE(asihpi_tuner_band_names) ==
                (HPI_TUNER_BAND_LAST+1)),
@@ -1313,9 +1314,11 @@ static const char * const asihpi_src_names[] = {
        "Analog",
        "Adapter",
        "RTP",
-       "Internal"
+       "Internal",
+       "AVB",
+       "BLU-Link"
 };
-
+/* Number of strings must match the enumerations for HPI_SOURCENODES in hpi.h */
 compile_time_assert(
        (ARRAY_SIZE(asihpi_src_names) ==
                (HPI_SOURCENODE_LAST_INDEX-HPI_SOURCENODE_NONE+1)),
@@ -1331,8 +1334,11 @@ static const char * const asihpi_dst_names[] = {
        "Net",
        "Analog",
        "RTP",
+       "AVB",
+       "Internal",
+       "BLU-Link"
 };
-
+/* Number of strings must match the enumerations for HPI_DESTNODES in hpi.h */
 compile_time_assert(
        (ARRAY_SIZE(asihpi_dst_names) ==
                (HPI_DESTNODE_LAST_INDEX-HPI_DESTNODE_NONE+1)),
@@ -2288,13 +2294,18 @@ static int snd_asihpi_cmode_add(struct snd_card_asihpi *asihpi,
 /*------------------------------------------------------------
    Sampleclock source  controls
  ------------------------------------------------------------*/
-static char *sampleclock_sources[MAX_CLOCKSOURCES] = {
+static const char const *sampleclock_sources[] = {
        "N/A", "Local PLL", "Digital Sync", "Word External", "Word Header",
        "SMPTE", "Digital1", "Auto", "Network", "Invalid",
-       "Prev Module",
+       "Prev Module", "BLU-Link",
        "Digital2", "Digital3", "Digital4", "Digital5",
        "Digital6", "Digital7", "Digital8"};
 
+       /* Number of strings must match expected enumerated values */
+       compile_time_assert(
+               (ARRAY_SIZE(sampleclock_sources) == MAX_CLOCKSOURCES),
+               assert_sampleclock_sources_size);
+
 static int snd_asihpi_clksrc_info(struct snd_kcontrol *kcontrol,
                                  struct snd_ctl_elem_info *uinfo)
 {
index 2088724..4466bd2 100644 (file)
@@ -196,8 +196,10 @@ enum HPI_SOURCENODES {
            packets of RTP audio samples from other devices. */
        HPI_SOURCENODE_RTP_DESTINATION = 112,
        HPI_SOURCENODE_INTERNAL = 113,       /**< node internal to the device. */
+       HPI_SOURCENODE_AVB = 114,            /**< AVB input stream */
+       HPI_SOURCENODE_BLULINK = 115,        /**< BLU-link input channel */
        /* !!!Update this  AND hpidebug.h if you add a new sourcenode type!!! */
-       HPI_SOURCENODE_LAST_INDEX = 113      /**< largest ID */
+       HPI_SOURCENODE_LAST_INDEX = 115      /**< largest ID */
                /* AX6 max sourcenode types = 15 */
 };
 
@@ -224,8 +226,11 @@ enum HPI_DESTNODES {
        /** RTP stream output node - This node is a source for
            packets of RTP audio samples that are sent to other devices. */
        HPI_DESTNODE_RTP_SOURCE = 208,
+       HPI_DESTNODE_AVB = 209,              /**< AVB output stream */
+       HPI_DESTNODE_INTERNAL = 210,         /**< node internal to the device. */
+       HPI_DESTNODE_BLULINK = 211,          /**< BLU-link output channel. */
        /* !!!Update this AND hpidebug.h if you add a new destnode type!!! */
-       HPI_DESTNODE_LAST_INDEX = 208        /**< largest ID */
+       HPI_DESTNODE_LAST_INDEX = 211        /**< largest ID */
                /* AX6 max destnode types = 15 */
 };
 
@@ -752,7 +757,8 @@ enum HPI_TUNER_BAND {
        HPI_TUNER_BAND_TV_PAL_I = 7,     /**< PAL-I TV band*/
        HPI_TUNER_BAND_TV_PAL_DK = 8,    /**< PAL-D/K TV band*/
        HPI_TUNER_BAND_TV_SECAM_L = 9,   /**< SECAM-L TV band*/
-       HPI_TUNER_BAND_LAST = 9 /**< the index of the last tuner band. */
+       HPI_TUNER_BAND_DAB = 10,
+       HPI_TUNER_BAND_LAST = 10 /**< the index of the last tuner band. */
 };
 
 /** Tuner mode attributes
@@ -842,8 +848,10 @@ enum HPI_SAMPLECLOCK_SOURCES {
        HPI_SAMPLECLOCK_SOURCE_NETWORK = 8,
 /** From previous adjacent module (ASI2416 only)*/
        HPI_SAMPLECLOCK_SOURCE_PREV_MODULE = 10,
+/** Blu link sample clock*/
+       HPI_SAMPLECLOCK_SOURCE_BLULINK = 11,
 /*! Update this if you add a new clock source.*/
-       HPI_SAMPLECLOCK_SOURCE_LAST = 10
+       HPI_SAMPLECLOCK_SOURCE_LAST = 11
 };
 
 /** Equalizer filter types. Used by HPI_ParametricEq_SetBand()