Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
[firefly-linux-kernel-4.4.55.git] / include / sound / tlv.h
index a64d8fe3f855b408e5c45ffae359d23ebb6db7eb..e11e179420a11fb07bce24e48e960bfdba9671a4 100644 (file)
 #define DECLARE_TLV_DB_LINEAR(name, min_dB, max_dB)    \
        unsigned int name[] = { TLV_DB_LINEAR_ITEM(min_dB, max_dB) }
 
-/* dB range container */
+/* dB range container:
+ * Items in dB range container must be ordered by their values and by their
+ * dB values. This implies that larger values must correspond with larger
+ * dB values (which is also required for all other mixer controls).
+ */
 /* Each item is: <min> <max> <TLV> */
 #define TLV_DB_RANGE_ITEM(...) \
        TLV_ITEM(SNDRV_CTL_TLVT_DB_RANGE, __VA_ARGS__)
 
 #define TLV_DB_GAIN_MUTE       -9999999
 
+/*
+ * channel-mapping TLV items
+ *  TLV length must match with num_channels
+ */
+#define SNDRV_CTL_TLVT_CHMAP_FIXED     0x101   /* fixed channel position */
+#define SNDRV_CTL_TLVT_CHMAP_VAR       0x102   /* channels freely swappable */
+#define SNDRV_CTL_TLVT_CHMAP_PAIRED    0x103   /* pair-wise swappable */
+
 #endif /* __SOUND_TLV_H */