Skip to content

Commit e4a07f5

Browse files
acpibobrafaeljw
authored andcommitted
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: acpica/acpica@0420852f Signed-off-by: Bob Moore <robert.moore@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
1 parent a3e525f commit e4a07f5

1 file changed

Lines changed: 42 additions & 30 deletions

File tree

include/acpi/actbl2.h

Lines changed: 42 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1495,12 +1495,10 @@ struct acpi_nhlt_device_specific_config_a {
14951495

14961496
/* Values for Config Type above */
14971497

1498-
#define ACPI_NHLT_TYPE_MIC_ARRAY 0x01
1499-
#define ACPI_NHLT_TYPE_GENERIC 0x00
1500-
1501-
/* Mask for Extension field of array_type */
1502-
1503-
#define ACPI_NHLT_ARRAY_TYPE_MASK 0x10
1498+
#define ACPI_NHLT_CONFIG_TYPE_GENERIC 0x00
1499+
#define ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY 0x01
1500+
#define ACPI_NHLT_CONFIG_TYPE_RENDER_FEEDBACK 0x03
1501+
#define ACPI_NHLT_CONFIG_TYPE_RESERVED 0x04 /* 4 and above are reserved */
15041502

15051503
struct acpi_nhlt_device_specific_config_b {
15061504
u32 capabilities_size;
@@ -1511,6 +1509,11 @@ struct acpi_nhlt_device_specific_config_c {
15111509
u8 virtual_slot;
15121510
};
15131511

1512+
struct acpi_nhlt_render_device_specific_config {
1513+
u32 capabilities_size;
1514+
u8 virtual_slot;
1515+
};
1516+
15141517
struct acpi_nhlt_wave_extensible {
15151518
u16 format_tag;
15161519
u16 channel_count;
@@ -1573,17 +1576,22 @@ struct acpi_nhlt_mic_device_specific_config {
15731576

15741577
/* Values for array_type_ext above */
15751578

1576-
#define SMALL_LINEAR_2ELEMENT 0x0A
1577-
#define BIG_LINEAR_2ELEMENT 0x0B
1578-
#define FIRST_GEOMETRY_LINEAR_4ELEMENT 0x0C
1579-
#define PLANAR_LSHAPED_4ELEMENT 0x0D
1580-
#define SECOND_GEOMETRY_LINEAR_4ELEMENT 0x0E
1581-
#define VENDOR_DEFINED 0x0F
1582-
#define ARRAY_TYPE_MASK 0x0F
1583-
#define ARRAY_TYPE_EXT_MASK 0x10
1579+
#define ACPI_NHLT_ARRAY_TYPE_RESERVED 0x09 // 9 and below are reserved
1580+
#define ACPI_NHLT_SMALL_LINEAR_2ELEMENT 0x0A
1581+
#define ACPI_NHLT_BIG_LINEAR_2ELEMENT 0x0B
1582+
#define ACPI_NHLT_FIRST_GEOMETRY_LINEAR_4ELEMENT 0x0C
1583+
#define ACPI_NHLT_PLANAR_LSHAPED_4ELEMENT 0x0D
1584+
#define ACPI_NHLT_SECOND_GEOMETRY_LINEAR_4ELEMENT 0x0E
1585+
#define ACPI_NHLT_VENDOR_DEFINED 0x0F
1586+
#define ACPI_NHLT_ARRAY_TYPE_MASK 0x0F
1587+
#define ACPI_NHLT_ARRAY_TYPE_EXT_MASK 0x10
1588+
1589+
#define ACPI_NHLT_NO_EXTENSION 0x0
1590+
#define ACPI_NHLT_MIC_SNR_SENSITIVITY_EXT (1<<4)
15841591

1585-
#define NO_EXTENSION 0x0
1586-
#define MIC_SNR_SENSITIVITY_EXT 0x1
1592+
struct acpi_nhlt_vendor_mic_count {
1593+
u8 microphone_count;
1594+
};
15871595

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

16041612
/* Values for Type field above */
16051613

1606-
#define MIC_OMNIDIRECTIONAL 0
1607-
#define MIC_SUBCARDIOID 1
1608-
#define MIC_CARDIOID 2
1609-
#define MIC_SUPER_CARDIOID 3
1610-
#define MIC_HYPER_CARDIOID 4
1611-
#define MIC_8_SHAPED 5
1612-
#define MIC_VENDOR_DEFINED 7
1614+
#define ACPI_NHLT_MIC_OMNIDIRECTIONAL 0
1615+
#define ACPI_NHLT_MIC_SUBCARDIOID 1
1616+
#define ACPI_NHLT_MIC_CARDIOID 2
1617+
#define ACPI_NHLT_MIC_SUPER_CARDIOID 3
1618+
#define ACPI_NHLT_MIC_HYPER_CARDIOID 4
1619+
#define ACPI_NHLT_MIC_8_SHAPED 5
1620+
#define ACPI_NHLT_MIC_RESERVED6 6 // 6 is reserved
1621+
#define ACPI_NHLT_MIC_VENDOR_DEFINED 7
1622+
#define ACPI_NHLT_MIC_RESERVED 8 // 8 and above are reserved
16131623

16141624
/* Values for Panel field above */
16151625

1616-
#define MIC_TOP 0
1617-
#define MIC_BOTTOM 1
1618-
#define MIC_LEFT 2
1619-
#define MIC_RIGHT 3
1620-
#define MIC_FRONT 4
1621-
#define MIC_REAR 5
1626+
#define ACPI_NHLT_MIC_POSITION_TOP 0
1627+
#define ACPI_NHLT_MIC_POSITION_BOTTOM 1
1628+
#define ACPI_NHLT_MIC_POSITION_LEFT 2
1629+
#define ACPI_NHLT_MIC_POSITION_RIGHT 3
1630+
#define ACPI_NHLT_MIC_POSITION_FRONT 4
1631+
#define ACPI_NHLT_MIC_POSITION_BACK 5
1632+
#define ACPI_NHLT_MIC_POSITION_RESERVED 6 // 6 and above are reserved
16221633

16231634
struct acpi_nhlt_vendor_mic_device_specific_config {
16241635
struct acpi_nhlt_mic_device_specific_config mic_array_device_config;
@@ -1633,8 +1644,9 @@ struct acpi_nhlt_mic_snr_sensitivity_extension {
16331644
u32 sensitivity;
16341645
};
16351646

1647+
/* Render device with feedback */
1648+
16361649
struct acpi_nhlt_render_feedback_device_specific_config {
1637-
struct acpi_nhlt_device_specific_config device_config;
16381650
u8 feedback_virtual_slot; // render slot in case of capture
16391651
u16 feedback_channels; // informative only
16401652
u16 feedback_valid_bits_per_sample;

0 commit comments

Comments
 (0)