@@ -1887,260 +1887,6 @@ struct nfit_device_handle {
1887
1887
#define ACPI_NFIT_GET_NODE_ID (handle ) \
1888
1888
(((handle) & ACPI_NFIT_NODE_ID_MASK) >> ACPI_NFIT_NODE_ID_OFFSET)
1889
1889
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
-
2144
1890
/*******************************************************************************
2145
1891
*
2146
1892
* NHLT - Non HDAudio Link Table
0 commit comments