Commit e4a07f5a authored by Bob Moore's avatar Bob Moore Committed by Rafael J. Wysocki
Browse files

ACPICA: iASL/Disassembler: Additional support for NHLT table

ACPICA commit 0420852ffc520b81960e877852703b739c16025c

Added support for Vendor-defined microphone arrays and SNR
(signal-to-noise) extension.

Link: https://github.com/acpica/acpica/commit/0420852f


Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent a3e525fe
Loading
Loading
Loading
Loading
+42 −30
Original line number Diff line number Diff line
@@ -1495,12 +1495,10 @@ struct acpi_nhlt_device_specific_config_a {

/* Values for Config Type above */

#define ACPI_NHLT_TYPE_MIC_ARRAY            0x01
#define ACPI_NHLT_TYPE_GENERIC              0x00

/* Mask for Extension field of array_type */

#define ACPI_NHLT_ARRAY_TYPE_MASK           0x10
#define ACPI_NHLT_CONFIG_TYPE_GENERIC              0x00
#define ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY            0x01
#define ACPI_NHLT_CONFIG_TYPE_RENDER_FEEDBACK      0x03
#define ACPI_NHLT_CONFIG_TYPE_RESERVED             0x04	/* 4 and above are reserved */

struct acpi_nhlt_device_specific_config_b {
	u32 capabilities_size;
@@ -1511,6 +1509,11 @@ struct acpi_nhlt_device_specific_config_c {
	u8 virtual_slot;
};

struct acpi_nhlt_render_device_specific_config {
	u32 capabilities_size;
	u8 virtual_slot;
};

struct acpi_nhlt_wave_extensible {
	u16 format_tag;
	u16 channel_count;
@@ -1573,17 +1576,22 @@ struct acpi_nhlt_mic_device_specific_config {

/* Values for array_type_ext above */

#define SMALL_LINEAR_2ELEMENT               0x0A
#define BIG_LINEAR_2ELEMENT                 0x0B
#define FIRST_GEOMETRY_LINEAR_4ELEMENT      0x0C
#define PLANAR_LSHAPED_4ELEMENT             0x0D
#define SECOND_GEOMETRY_LINEAR_4ELEMENT     0x0E
#define VENDOR_DEFINED                      0x0F
#define ARRAY_TYPE_MASK                     0x0F
#define ARRAY_TYPE_EXT_MASK                 0x10
#define ACPI_NHLT_ARRAY_TYPE_RESERVED               0x09	// 9 and below are reserved
#define ACPI_NHLT_SMALL_LINEAR_2ELEMENT             0x0A
#define ACPI_NHLT_BIG_LINEAR_2ELEMENT               0x0B
#define ACPI_NHLT_FIRST_GEOMETRY_LINEAR_4ELEMENT    0x0C
#define ACPI_NHLT_PLANAR_LSHAPED_4ELEMENT           0x0D
#define ACPI_NHLT_SECOND_GEOMETRY_LINEAR_4ELEMENT   0x0E
#define ACPI_NHLT_VENDOR_DEFINED                    0x0F
#define ACPI_NHLT_ARRAY_TYPE_MASK                   0x0F
#define ACPI_NHLT_ARRAY_TYPE_EXT_MASK               0x10

#define ACPI_NHLT_NO_EXTENSION                      0x0
#define ACPI_NHLT_MIC_SNR_SENSITIVITY_EXT           (1<<4)

#define NO_EXTENSION                        0x0
#define MIC_SNR_SENSITIVITY_EXT             0x1
struct acpi_nhlt_vendor_mic_count {
	u8 microphone_count;
};

struct acpi_nhlt_vendor_mic_config {
	u8 type;
@@ -1603,22 +1611,25 @@ struct acpi_nhlt_vendor_mic_config {

/* Values for Type field above */

#define MIC_OMNIDIRECTIONAL                 0
#define MIC_SUBCARDIOID                     1
#define MIC_CARDIOID                        2
#define MIC_SUPER_CARDIOID                  3
#define MIC_HYPER_CARDIOID                  4
#define MIC_8_SHAPED                        5
#define MIC_VENDOR_DEFINED                  7
#define ACPI_NHLT_MIC_OMNIDIRECTIONAL       0
#define ACPI_NHLT_MIC_SUBCARDIOID           1
#define ACPI_NHLT_MIC_CARDIOID              2
#define ACPI_NHLT_MIC_SUPER_CARDIOID        3
#define ACPI_NHLT_MIC_HYPER_CARDIOID        4
#define ACPI_NHLT_MIC_8_SHAPED              5
#define ACPI_NHLT_MIC_RESERVED6             6	// 6 is reserved
#define ACPI_NHLT_MIC_VENDOR_DEFINED        7
#define ACPI_NHLT_MIC_RESERVED              8	// 8 and above are reserved

/* Values for Panel field above */

#define MIC_TOP                             0
#define MIC_BOTTOM                          1
#define MIC_LEFT                            2
#define MIC_RIGHT                           3
#define MIC_FRONT                           4
#define MIC_REAR                            5
#define ACPI_NHLT_MIC_POSITION_TOP          0
#define ACPI_NHLT_MIC_POSITION_BOTTOM       1
#define ACPI_NHLT_MIC_POSITION_LEFT         2
#define ACPI_NHLT_MIC_POSITION_RIGHT        3
#define ACPI_NHLT_MIC_POSITION_FRONT        4
#define ACPI_NHLT_MIC_POSITION_BACK         5
#define ACPI_NHLT_MIC_POSITION_RESERVED     6	// 6 and above are reserved

struct acpi_nhlt_vendor_mic_device_specific_config {
	struct acpi_nhlt_mic_device_specific_config mic_array_device_config;
@@ -1633,8 +1644,9 @@ struct acpi_nhlt_mic_snr_sensitivity_extension {
	u32 sensitivity;
};

/* Render device with feedback */

struct acpi_nhlt_render_feedback_device_specific_config {
	struct acpi_nhlt_device_specific_config device_config;
	u8 feedback_virtual_slot;	// render slot in case of capture
	u16 feedback_channels;	// informative only
	u16 feedback_valid_bits_per_sample;