@@ -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
15051503struct 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+
15141517struct 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
15881596struct 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
16231634struct 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+
16361649struct 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