@@ -1887,260 +1887,6 @@ struct nfit_device_handle {
18871887#define ACPI_NFIT_GET_NODE_ID (handle ) \
18881888 (((handle) & ACPI_NFIT_NODE_ID_MASK) >> ACPI_NFIT_NODE_ID_OFFSET)
18891889
1890- /*******************************************************************************
1891- *
1892- * NHLT - Non HD Audio Link Table
1893- *
1894- * Conforms to: Intel Smart Sound Technology NHLT Specification
1895- * Version 0.8.1, January 2020.
1896- *
1897- ******************************************************************************/
1898-
1899- /* Main table */
1900-
1901- struct acpi_table_nhlt {
1902- struct acpi_table_header header ; /* Common ACPI table header */
1903- u8 endpoint_count ;
1904- };
1905-
1906- struct acpi_nhlt_endpoint {
1907- u32 descriptor_length ;
1908- u8 link_type ;
1909- u8 instance_id ;
1910- u16 vendor_id ;
1911- u16 device_id ;
1912- u16 revision_id ;
1913- u32 subsystem_id ;
1914- u8 device_type ;
1915- u8 direction ;
1916- u8 virtual_bus_id ;
1917- };
1918-
1919- /* Types for link_type field above */
1920-
1921- #define ACPI_NHLT_RESERVED_HD_AUDIO 0
1922- #define ACPI_NHLT_RESERVED_DSP 1
1923- #define ACPI_NHLT_PDM 2
1924- #define ACPI_NHLT_SSP 3
1925- #define ACPI_NHLT_RESERVED_SLIMBUS 4
1926- #define ACPI_NHLT_RESERVED_SOUNDWIRE 5
1927- #define ACPI_NHLT_TYPE_RESERVED 6 /* 6 and above are reserved */
1928-
1929- /* All other values above are reserved */
1930-
1931- /* Values for device_id field above */
1932-
1933- #define ACPI_NHLT_PDM_DMIC 0xAE20
1934- #define ACPI_NHLT_BT_SIDEBAND 0xAE30
1935- #define ACPI_NHLT_I2S_TDM_CODECS 0xAE23
1936-
1937- /* Values for device_type field above */
1938-
1939- /* SSP Link */
1940-
1941- #define ACPI_NHLT_LINK_BT_SIDEBAND 0
1942- #define ACPI_NHLT_LINK_FM 1
1943- #define ACPI_NHLT_LINK_MODEM 2
1944- /* 3 is reserved */
1945- #define ACPI_NHLT_LINK_SSP_ANALOG_CODEC 4
1946-
1947- /* PDM Link */
1948-
1949- #define ACPI_NHLT_PDM_ON_CAVS_1P8 0
1950- #define ACPI_NHLT_PDM_ON_CAVS_1P5 1
1951-
1952- /* Values for Direction field above */
1953-
1954- #define ACPI_NHLT_DIR_RENDER 0
1955- #define ACPI_NHLT_DIR_CAPTURE 1
1956- #define ACPI_NHLT_DIR_RENDER_LOOPBACK 2
1957- #define ACPI_NHLT_DIR_RENDER_FEEDBACK 3
1958- #define ACPI_NHLT_DIR_RESERVED 4 /* 4 and above are reserved */
1959-
1960- struct acpi_nhlt_device_specific_config {
1961- u32 capabilities_size ;
1962- u8 virtual_slot ;
1963- u8 config_type ;
1964- };
1965-
1966- struct acpi_nhlt_device_specific_config_a {
1967- u32 capabilities_size ;
1968- u8 virtual_slot ;
1969- u8 config_type ;
1970- u8 array_type ;
1971- };
1972-
1973- /* Values for Config Type above */
1974-
1975- #define ACPI_NHLT_CONFIG_TYPE_GENERIC 0x00
1976- #define ACPI_NHLT_CONFIG_TYPE_MIC_ARRAY 0x01
1977- #define ACPI_NHLT_CONFIG_TYPE_RENDER_FEEDBACK 0x03
1978- #define ACPI_NHLT_CONFIG_TYPE_RESERVED 0x04 /* 4 and above are reserved */
1979-
1980- struct acpi_nhlt_device_specific_config_b {
1981- u32 capabilities_size ;
1982- };
1983-
1984- struct acpi_nhlt_device_specific_config_c {
1985- u32 capabilities_size ;
1986- u8 virtual_slot ;
1987- };
1988-
1989- struct acpi_nhlt_render_device_specific_config {
1990- u32 capabilities_size ;
1991- u8 virtual_slot ;
1992- };
1993-
1994- struct acpi_nhlt_wave_extensible {
1995- u16 format_tag ;
1996- u16 channel_count ;
1997- u32 samples_per_sec ;
1998- u32 avg_bytes_per_sec ;
1999- u16 block_align ;
2000- u16 bits_per_sample ;
2001- u16 extra_format_size ;
2002- u16 valid_bits_per_sample ;
2003- u32 channel_mask ;
2004- u8 sub_format_guid [16 ];
2005- };
2006-
2007- /* Values for channel_mask above */
2008-
2009- #define ACPI_NHLT_SPKR_FRONT_LEFT 0x1
2010- #define ACPI_NHLT_SPKR_FRONT_RIGHT 0x2
2011- #define ACPI_NHLT_SPKR_FRONT_CENTER 0x4
2012- #define ACPI_NHLT_SPKR_LOW_FREQ 0x8
2013- #define ACPI_NHLT_SPKR_BACK_LEFT 0x10
2014- #define ACPI_NHLT_SPKR_BACK_RIGHT 0x20
2015- #define ACPI_NHLT_SPKR_FRONT_LEFT_OF_CENTER 0x40
2016- #define ACPI_NHLT_SPKR_FRONT_RIGHT_OF_CENTER 0x80
2017- #define ACPI_NHLT_SPKR_BACK_CENTER 0x100
2018- #define ACPI_NHLT_SPKR_SIDE_LEFT 0x200
2019- #define ACPI_NHLT_SPKR_SIDE_RIGHT 0x400
2020- #define ACPI_NHLT_SPKR_TOP_CENTER 0x800
2021- #define ACPI_NHLT_SPKR_TOP_FRONT_LEFT 0x1000
2022- #define ACPI_NHLT_SPKR_TOP_FRONT_CENTER 0x2000
2023- #define ACPI_NHLT_SPKR_TOP_FRONT_RIGHT 0x4000
2024- #define ACPI_NHLT_SPKR_TOP_BACK_LEFT 0x8000
2025- #define ACPI_NHLT_SPKR_TOP_BACK_CENTER 0x10000
2026- #define ACPI_NHLT_SPKR_TOP_BACK_RIGHT 0x20000
2027-
2028- struct acpi_nhlt_format_config {
2029- struct acpi_nhlt_wave_extensible format ;
2030- u32 capability_size ;
2031- u8 capabilities [];
2032- };
2033-
2034- struct acpi_nhlt_formats_config {
2035- u8 formats_count ;
2036- };
2037-
2038- struct acpi_nhlt_device_specific_hdr {
2039- u8 virtual_slot ;
2040- u8 config_type ;
2041- };
2042-
2043- /* Types for config_type above */
2044-
2045- #define ACPI_NHLT_GENERIC 0
2046- #define ACPI_NHLT_MIC 1
2047- #define ACPI_NHLT_RENDER 3
2048-
2049- struct acpi_nhlt_mic_device_specific_config {
2050- struct acpi_nhlt_device_specific_hdr device_config ;
2051- u8 array_type_ext ;
2052- };
2053-
2054- /* Values for array_type_ext above */
2055-
2056- #define ACPI_NHLT_ARRAY_TYPE_RESERVED 0x09 /* 9 and below are reserved */
2057- #define ACPI_NHLT_SMALL_LINEAR_2ELEMENT 0x0A
2058- #define ACPI_NHLT_BIG_LINEAR_2ELEMENT 0x0B
2059- #define ACPI_NHLT_FIRST_GEOMETRY_LINEAR_4ELEMENT 0x0C
2060- #define ACPI_NHLT_PLANAR_LSHAPED_4ELEMENT 0x0D
2061- #define ACPI_NHLT_SECOND_GEOMETRY_LINEAR_4ELEMENT 0x0E
2062- #define ACPI_NHLT_VENDOR_DEFINED 0x0F
2063- #define ACPI_NHLT_ARRAY_TYPE_MASK 0x0F
2064- #define ACPI_NHLT_ARRAY_TYPE_EXT_MASK 0x10
2065-
2066- #define ACPI_NHLT_NO_EXTENSION 0x0
2067- #define ACPI_NHLT_MIC_SNR_SENSITIVITY_EXT (1<<4)
2068-
2069- struct acpi_nhlt_vendor_mic_count {
2070- u8 microphone_count ;
2071- };
2072-
2073- struct acpi_nhlt_vendor_mic_config {
2074- u8 type ;
2075- u8 panel ;
2076- u16 speaker_position_distance ; /* mm */
2077- u16 horizontal_offset ; /* mm */
2078- u16 vertical_offset ; /* mm */
2079- u8 frequency_low_band ; /* 5*Hz */
2080- u8 frequency_high_band ; /* 500*Hz */
2081- u16 direction_angle ; /* -180 - + 180 */
2082- u16 elevation_angle ; /* -180 - + 180 */
2083- u16 work_vertical_angle_begin ; /* -180 - + 180 with 2 deg step */
2084- u16 work_vertical_angle_end ; /* -180 - + 180 with 2 deg step */
2085- u16 work_horizontal_angle_begin ; /* -180 - + 180 with 2 deg step */
2086- u16 work_horizontal_angle_end ; /* -180 - + 180 with 2 deg step */
2087- };
2088-
2089- /* Values for Type field above */
2090-
2091- #define ACPI_NHLT_MIC_OMNIDIRECTIONAL 0
2092- #define ACPI_NHLT_MIC_SUBCARDIOID 1
2093- #define ACPI_NHLT_MIC_CARDIOID 2
2094- #define ACPI_NHLT_MIC_SUPER_CARDIOID 3
2095- #define ACPI_NHLT_MIC_HYPER_CARDIOID 4
2096- #define ACPI_NHLT_MIC_8_SHAPED 5
2097- #define ACPI_NHLT_MIC_RESERVED6 6 /* 6 is reserved */
2098- #define ACPI_NHLT_MIC_VENDOR_DEFINED 7
2099- #define ACPI_NHLT_MIC_RESERVED 8 /* 8 and above are reserved */
2100-
2101- /* Values for Panel field above */
2102-
2103- #define ACPI_NHLT_MIC_POSITION_TOP 0
2104- #define ACPI_NHLT_MIC_POSITION_BOTTOM 1
2105- #define ACPI_NHLT_MIC_POSITION_LEFT 2
2106- #define ACPI_NHLT_MIC_POSITION_RIGHT 3
2107- #define ACPI_NHLT_MIC_POSITION_FRONT 4
2108- #define ACPI_NHLT_MIC_POSITION_BACK 5
2109- #define ACPI_NHLT_MIC_POSITION_RESERVED 6 /* 6 and above are reserved */
2110-
2111- struct acpi_nhlt_vendor_mic_device_specific_config {
2112- struct acpi_nhlt_mic_device_specific_config mic_array_device_config ;
2113- u8 number_of_microphones ;
2114- struct acpi_nhlt_vendor_mic_config mic_config []; /* Indexed by number_of_microphones */
2115- };
2116-
2117- /* Microphone SNR and Sensitivity extension */
2118-
2119- struct acpi_nhlt_mic_snr_sensitivity_extension {
2120- u32 SNR ;
2121- u32 sensitivity ;
2122- };
2123-
2124- /* Render device with feedback */
2125-
2126- struct acpi_nhlt_render_feedback_device_specific_config {
2127- u8 feedback_virtual_slot ; /* Render slot in case of capture */
2128- u16 feedback_channels ; /* Informative only */
2129- u16 feedback_valid_bits_per_sample ;
2130- };
2131-
2132- /* Non documented structures */
2133-
2134- struct acpi_nhlt_device_info_count {
2135- u8 structure_count ;
2136- };
2137-
2138- struct acpi_nhlt_device_info {
2139- u8 device_id [16 ];
2140- u8 device_instance_id ;
2141- u8 device_port_id ;
2142- };
2143-
21441890/*******************************************************************************
21451891 *
21461892 * NHLT - Non HDAudio Link Table
0 commit comments