/* ************************************************************************* *\
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 © 2010 Intel Corporation. All Rights Reserved.

File Name: isst.inf
Description: driver inf file
Notes:
\* ************************************************************************* */

[Version]
Signature="$Windows NT$"
Class=MEDIA
Provider=%INTC%
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
DriverVer=06/12/2013,6.2.9200.34264
CatalogFile=isst.cat

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

[SourceDisksFiles]
isst.sys=222
cirrus_fw_sst.bin=222

;;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

;;  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\INT33B3 ;GL: how ACPI enumerate SST?

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


[IntelSSTAudio.CopyList]
isst.sys
cirrus_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


HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,isst.sys
;HKR,,NTMPDriver,,"isst.sys,sbemul.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%

;****** Buffer size for LPMP3 ****** 
HKLM,Software\Microsoft\Windows Media Foundation\Platform\SAR,PullModeBufferDuration,0x00010001,0x5F5E100

;======================================================
; interfaces
;======================================================
;*********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


;*********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
CopyFiles=IntelSSTAudio.CopyList
AddReg=IntelSSTAudio.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_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\isst.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"
