/* ************************************************************************* *\
INTEL CORPORATION PROPRIETARY INFORMATION
This software is supplied under the terms of a license agreement or
nondisclosure agreement with Intel Corporation and may not be copied or
disclosed except in accordance with the terms of that agreement
Copyright © 2013 Intel Corporation. All Rights Reserved.

File Name: isstrtc.inf

Description: Audio miniport driver inf file

Notes:
\* ************************************************************************* */

[Version]
Signature="$Windows NT$"
Class=MEDIA
Provider=%INTC%
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
DriverVer=05/25/2015,604.10135.1010.531

CatalogFile=isstrtc.cat

[SourceDisksNames]
222=%INTCDisk%,"",222

[SourceDisksFiles]
isstrtc.sys=222
realtek_fw_sst.bin=222

[SignatureAttributes] 
isstrtc.sys=SignatureAttributes.DRM 

[SignatureAttributes.DRM] 
DRMLevel=1300 

;;This syntax is only recognized on Windows XP and above- it is needed to install 64-bit drivers on
;;Windows Server 2003 Service Pack 1 and above.

[Manufacturer]
%MfgName%=IntelSST,NTamd64

;;  For Windows Server 2003 Service Pack 1 and above, a 64-bit OS will not install a driver
;;  unless the Manufacturer and Models Sections explicitly show it is a driver for that platform
;;  But the individual model section decorations (or lack thereof) work as they always have.
;;  All of the model sections referred to are undecorated or NT-decorated, hence work on all platforms

[IntelSST]
%IntelSSTAudio.DeviceDesc%=IntelSSTAudio,ACPI\80860F28 ; How ACPI enumerate SST?

[IntelSST.NTamd64]
%IntelSSTAudio.DeviceDesc%=IntelSSTAudio,ACPI\80860F28 ; How ACPI enumerate SST?

[DestinationDirs]
IntelSSTAudio.CopyList=10,system32\drivers

[IntelSSTAudio.CopyList]
isstrtc.sys
realtek_fw_sst.bin

[IntelSSTAudio.AddReg]

;****** D0/D3 RTPM enabling ******
HKR,PowerSettings,ConservationIdleTime,0x00010001,0x1e
HKR,PowerSettings,PerformanceIdleTime,0x00010001,0x1e
HKR,PowerSettings,IdlePowerState,0x00010001,0x3

;****** BT SSP Config ******
HKR,BTSSP,BTSSPFRMSyncMode,0x00010001,0
HKR,BTSSP,BTSSPFRMPolarity,0x00010001,1
HKR,BTSSP,BTSSPClockMode,0x00010001,0

;****** Audio Volume/Boost Config ******
HKR,AudioVolBoost,MicMaxVolume,0x00000000,30
HKR,AudioVolBoost,MicMinVolume,0x00000000,-18
HKR,AudioVolBoost,MicMaxBoostVolume,0x00000000,36
HKR,AudioVolBoost,MicMinBoostVolume,0x00000000,0
HKR,AudioVolBoost,SPKMaxVol,0x00000000,0
HKR,AudioVolBoost,SPKMinVol,0x00000000,-138
HKR,AudioVolBoost,SPKDefaultVolumeSpeaker,0x00000000,-12
HKR,AudioVolBoost,SPKDefaultVolumeJack,0x00000000,-12
HKR,AudioVolBoost,SPKVolLimit,0x00000000,-12
;; For EU set GenerateVolLimitUI = 1 (else unset) and TimerVolLimitUI=cumulative listening time 
;; example EU recommended 20hrs value is 0x11940 seconds
;; IMPORTANT - to enable EU warning set GenerateVolLimitUI
HKR,AudioVolBoost,GenerateVolLimitUI,0x00010001,0
HKR,AudioVolBoost,TimerVolLimitUI,0x00010001,0x11940 

;; Waves Support: 
HKR,HeadsetStatus,HeadsetStatus,0x00010001,0

;; Dolby Support: 
;; 1.set DolbyEnable to 1 
;; 2.Uncomment key PKEY_DOLBY sets value 1 for internal speakers and 3 for wired headsets
HKR,AudioVolBoost,DolbyEnable,0x00000000,0
;;HKLM,Software\Dolby\DolbyDigitalPlus\DynamicKeys,%PKEY_DOLBY%,0x00010001,0


HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,isstrtc.sys
HKR,Drivers,SubClasses,,"wave,midi,mixer"
HKR,Drivers\wave\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\midi\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\mixer\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\wave\wdmaud.drv,Description,,%IntelSSTAudio.DeviceDesc%
HKR,Drivers\midi\wdmaud.drv,Description,,%IntelSSTAudio_MIDI%
HKR,Drivers\mixer\wdmaud.drv,Description,,%IntelSSTAudio.DeviceDesc%
HKLM,%MediaCategories%\%IntelSST.NameGuid%,Name,,%IntelSST.Name%

;======================================================
; interfaces
;======================================================
[IntcADSPModel.AddReg] 
;****** Audio AccessMode Config ******
;Bit [0] of AccessMode key defines location of debug registers 
;0- default location , 1- fixed location 
HKR,AccessSettings,AccessMode,1,01
;Bit [5] of OffloadPinCapabilities key defines if offload pins are to be supported 
;0- offload pins enabled <default value>
;1- offload pins disabled
HKR,GlobalSettings,OffloadPinCapabilities,1,00,00,00,00

HKLM,Software\Intel,SubClasses,,"Audio"
HKLM,Software\Intel\Audio,SubClasses,,"GlobalSettings"
HKLM,Software\Intel\Audio\GlobalSettings,OffloadPinCapabilities,1,00,00,00,00
;*********HEADSET*****************
[IntelSST.I.Wave]
AddReg=IntelSST.I.Wave.AddReg

[IntelSST.I.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%IntelSST.Wave.szPname%

[IntelSST.I.Topo]
AddReg=IntelSST.I.Topo.AddReg

[IntelSST.I.Topo.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%IntelSST.Topo.szPname%
;opt-in to pull mode.
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"EP\\0",%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1
HKR,"EP\\1",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"EP\\1",%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

;*********IHF*****************
[IntelSST.I.WaveIHF]
AddReg=IntelSST.I.WaveIHF.AddReg

[IntelSST.I.WaveIHF.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%IntelSST.WaveIHF.szPname%

[IntelSST.I.TopoIHF]
AddReg=IntelSST.I.TopoIHF.AddReg

[IntelSST.I.TopoIHF.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%IntelSST.TopoIHF.szPname%
;opt-in to pull mode.
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"EP\\0",%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

;*********DMIC*****************
[IntelSST.I.WaveDMIC]
AddReg=IntelSST.I.WaveDMIC.AddReg

[IntelSST.I.WaveDMIC.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%IntelSST.WaveDMIC.szPname%

[IntelSST.I.TopoDMIC]
AddReg=IntelSST.I.TopoDMIC.AddReg

[IntelSST.I.TopoDMIC.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%IntelSST.TopoDMIC.szPname%
;opt-in to pull mode.
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"EP\\0",%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1


;*********HDMI*****************

[IntelSST.I.WaveHdmi]
AddReg=IntelSST.I.WaveHdmi.AddReg

[IntelSST.I.WaveHdmi.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%IntelSST.WaveHdmi.szPname%

[IntelSST.I.TopoHdmi]
AddReg=IntelSST.I.TopoHdmi.AddReg

[IntelSST.I.TopoHdmi.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%IntelSST.TopoHdmi.szPname%
;opt-in to pull mode.
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"EP\\0",%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

;======================================================
; IntelSSTAudio
;======================================================

[IntelSSTAudio.NT]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration, MsApoFxProxy.Registration
CopyFiles=IntelSSTAudio.CopyList
AddReg=IntelSSTAudio.AddReg, IntcADSPModel.AddReg
Reboot

[IntelSSTAudio.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,IntelSST.I.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,IntelSST.I.Wave
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_Wave%,IntelSST.I.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,IntelSST.I.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,IntelSST.I.Topo
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_Topology%,IntelSST.I.Topo
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_WaveIHF%,IntelSST.I.WaveIHF
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_WaveIHF%,IntelSST.I.WaveIHF
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_WaveIHF%,IntelSST.I.WaveIHF
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_TopologyIHF%,IntelSST.I.TopoIHF
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_TopologyIHF%,IntelSST.I.TopoIHF
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_WaveDMIC%,IntelSST.I.WaveDMIC
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_WaveDMIC%,IntelSST.I.WaveDMIC
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_WaveDMIC%,IntelSST.I.WaveDMIC
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_TopologyDMIC%,IntelSST.I.TopoDMIC
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_TopologyDMIC%,IntelSST.I.TopoDMIC

AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_WaveHdmi%,IntelSST.I.WaveHdmi
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_WaveHdmi%,IntelSST.I.WaveHdmi
AddInterface=%KSCATEGORY_REALTIME%,%KSNAME_WaveHdmi%,IntelSST.I.WaveHdmi
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_TopologyHdmi%,IntelSST.I.TopoHdmi
AddInterface=%KSCATEGORY_TOPOLOGY%,%KSNAME_TopologyHdmi%,IntelSST.I.TopoHdmi

[IntelSSTAudio.NT.Services]
AddService=IntelSST,0x00000002,IntelSST_Audio_Service_Inst

[IntelSST_Audio_Service_Inst]
DisplayName=%IntelSST_Audio.SvcDesc%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%10%\system32\drivers\isstrtc.sys

[IntelSSTAudio.NT.HW]
AddReg = AUDIOHW.AddReg

[AUDIOHW.AddReg]
; FILE_DEVICE_SOUND
HKR,,DeviceType,0x10001,0x0000001D
; SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RWX_RES_RWX
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GRGWGX;;;WD)(A;;GRGWGX;;;RC)"

;======================================================
; COMMON
;======================================================
[Strings]
INTC="Intel"
MfgName="Intel Corporation"
IntelSSTAudio.DeviceDesc="Intel SST Audio Device (WDM)"
IntelSST.Wave.szPname="IntelSST Audio Wave for HS"
IntelSST.Topo.szPname="IntelSST Audio Topology for HS"
IntelSST.WaveIHF.szPname="IntelSST Audio Wave for IHF"
IntelSST.TopoIHF.szPname="IntelSST Audio Topology for IHF"
IntelSST.WaveDMIC.szPname="IntelSST Audio Wave for DMIC"
IntelSST.TopoDMIC.szPname="IntelSST Audio Topology for DMIC"

IntelSST.WaveHdmi.szPname="IntelSST Audio Wave for Hdmi"
IntelSST.TopoHdmi.szPname="IntelSST Audio Topology for Hdmi"

INTCDisk = "Intel SST Driver Disk"

Proxy.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_RENDER="{65E8773E-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_CAPTURE="{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_REALTIME ="{EB115FFC-10C8-4964-831D-6DCB02E6F23F}" ; non-localizable
KSCATEGORY_TOPOLOGY = "{DDA54A40-1E4C-11D1-A050-405705C10000}" ; non-localizable
KSNAME_Wave="Wave"
KSNAME_Topology="Topology"
KSNAME_WaveIHF="WaveIHF"
KSNAME_TopologyIHF="TopologyIHF"
KSNAME_WaveDMIC="WaveDMIC"
KSNAME_TopologyDMIC="TopologyDMIC"
KSNAME_WaveHdmi="WaveHdmi"
KSNAME_TopologyHdmi="TopoHdmi"


IntelSST_Audio.SvcDesc="Intel SST Audio Device (WDM)"
IntelSSTAudio_MIDI="Intel SST Audio MIDI Device(WDM)"
MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"
IntelSST.NameGuid="{946A7B1A-EBBC-422a-A81F-E07C8D40D3B4}"
IntelSST.Name="IntelSST"
KSNODETYPE_ANY = "{00000000-0000-0000-0000-000000000000}"
PKEY_AudioEndpoint_Association = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioEndpoint_Supports_EventDriven_Mode = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"
PKEY_DOLBY= "{DD0DF94B-53A2-4a92-854E-91F42E28FD7B},0"

PKEY_FX_Association         = "{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},0"
PKEY_FX_PreMixEffectClsid   = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},1"
PKEY_FX_PostMixEffectClsid  = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},2"
PKEY_FX_UserInterfaceClsid  = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"
PKEY_FX_StreamEffectClsid   = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"
PKEY_FX_ModeEffectClsid     = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"
PKEY_FX_EndpointEffectClsid = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},7"