mirror of
https://github.com/reactos/reactos.git
synced 2025-04-26 00:20:34 +00:00
- Fix registered guids for IPortMidi
- Fix InterfaceGuids array in IPortTopology - Add a hack to prevent es1371 driver from crashing svn path=/trunk/; revision=39143
This commit is contained in:
parent
bc9b8cbda8
commit
820978650e
3 changed files with 28 additions and 11 deletions
|
@ -116,7 +116,7 @@ IDmaChannelSlave_fnAllocateBuffer(
|
||||||
//FIXME
|
//FIXME
|
||||||
// retry with different size on failure
|
// retry with different size on failure
|
||||||
|
|
||||||
This->Buffer = This->pAdapter->DmaOperations->AllocateCommonBuffer(This->pAdapter, BufferSize, &This->Address, TRUE);
|
This->Buffer = This->pAdapter->DmaOperations->AllocateCommonBuffer(This->pAdapter, BufferSize, &This->Address, FALSE);
|
||||||
if (!This->Buffer)
|
if (!This->Buffer)
|
||||||
{
|
{
|
||||||
DPRINT1("IDmaChannelSlave_AllocateBuffer fAllocateCommonBuffer failed \n");
|
DPRINT1("IDmaChannelSlave_AllocateBuffer fAllocateCommonBuffer failed \n");
|
||||||
|
@ -125,7 +125,7 @@ IDmaChannelSlave_fnAllocateBuffer(
|
||||||
|
|
||||||
This->BufferSize = BufferSize;
|
This->BufferSize = BufferSize;
|
||||||
This->AllocatedBufferSize = BufferSize;
|
This->AllocatedBufferSize = BufferSize;
|
||||||
DPRINT1("IDmaChannelSlave_fnAllocateBuffer Success Buffer %u Address %ull\n", BufferSize, This->Address);
|
DPRINT1("IDmaChannelSlave_fnAllocateBuffer Success Buffer %u Address %x %p\n", BufferSize, This->Address, PhysicalAddressConstraint);
|
||||||
|
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -226,10 +226,19 @@ NTAPI
|
||||||
IDmaChannelSlave_fnPhysicalAdress(
|
IDmaChannelSlave_fnPhysicalAdress(
|
||||||
IN IDmaChannelSlave * iface)
|
IN IDmaChannelSlave * iface)
|
||||||
{
|
{
|
||||||
|
PHYSICAL_ADDRESS Address;
|
||||||
IDmaChannelSlaveImpl * This = (IDmaChannelSlaveImpl*)iface;
|
IDmaChannelSlaveImpl * This = (IDmaChannelSlaveImpl*)iface;
|
||||||
|
DPRINT("IDmaChannelSlave_PhysicalAdress: This %p Virtuell %p Physical High %x Low %x%\n", This, This->Buffer, This->Address.HighPart, This->Address.LowPart);
|
||||||
|
|
||||||
DPRINT("IDmaChannelSlave_PhysicalAdress: This %p\n", This);
|
#if 1
|
||||||
return This->Address;
|
|
||||||
|
/// HACK
|
||||||
|
/// Prevent ES1371 driver from crashing by returning the vaddr instead of physical address
|
||||||
|
Address.QuadPart = (ULONG_PTR)This->Buffer;
|
||||||
|
#else
|
||||||
|
Address.QuadPart = This->Address.QuadPart;
|
||||||
|
#endif
|
||||||
|
return Address;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID
|
VOID
|
||||||
|
|
|
@ -18,16 +18,19 @@ typedef struct
|
||||||
PSUBDEVICE_DESCRIPTOR SubDeviceDescriptor;
|
PSUBDEVICE_DESCRIPTOR SubDeviceDescriptor;
|
||||||
}IPortMidiImpl;
|
}IPortMidiImpl;
|
||||||
|
|
||||||
|
|
||||||
static GUID InterfaceGuids[3] =
|
static GUID InterfaceGuids[3] =
|
||||||
{
|
{
|
||||||
{
|
|
||||||
/// KS_CATEGORY_TOPOLOGY
|
|
||||||
0xDDA54A40, 0x1E4C, 0x11D1, {0xA0, 0x50, 0x40, 0x57, 0x05, 0xC1, 0x00, 0x00}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
/// KS_CATEGORY_AUDIO
|
/// KS_CATEGORY_AUDIO
|
||||||
0x6994AD04, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
|
0x6994AD04, 0x93EF, 0x11D0, {0xA3, 0xCC, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/// KS_CATEGORY_RENDER
|
||||||
|
0x65E8773E, 0x8F56, 0x11D0, {0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
/// KS_CATEGORY_CAPTURE
|
||||||
|
0x65E8773D, 0x8F56, 0x11D0, {0xA3, 0xB9, 0x00, 0xA0, 0xC9, 0x22, 0x31, 0x96}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -65,6 +68,11 @@ IPortMidi_fnQueryInterface(
|
||||||
{
|
{
|
||||||
return NewPortClsVersion((PPORTCLSVERSION*)Output);
|
return NewPortClsVersion((PPORTCLSVERSION*)Output);
|
||||||
}
|
}
|
||||||
|
else if (IsEqualGUIDAligned(refiid, &IID_IDrmPort) ||
|
||||||
|
IsEqualGUIDAligned(refiid, &IID_IDrmPort2))
|
||||||
|
{
|
||||||
|
return NewIDrmPort((PDRMPORT2*)Output);
|
||||||
|
}
|
||||||
|
|
||||||
StringFromCLSID(refiid, Buffer);
|
StringFromCLSID(refiid, Buffer);
|
||||||
DPRINT1("IPortMidi_fnQueryInterface no iface %S\n", Buffer);
|
DPRINT1("IPortMidi_fnQueryInterface no iface %S\n", Buffer);
|
||||||
|
@ -190,7 +198,7 @@ IPortMidi_fnInit(
|
||||||
|
|
||||||
/* create the subdevice descriptor */
|
/* create the subdevice descriptor */
|
||||||
Status = PcCreateSubdeviceDescriptor(&This->SubDeviceDescriptor,
|
Status = PcCreateSubdeviceDescriptor(&This->SubDeviceDescriptor,
|
||||||
2,
|
3,
|
||||||
InterfaceGuids,
|
InterfaceGuids,
|
||||||
0,
|
0,
|
||||||
NULL,
|
NULL,
|
||||||
|
|
|
@ -18,7 +18,7 @@ typedef struct
|
||||||
}IPortTopologyImpl;
|
}IPortTopologyImpl;
|
||||||
|
|
||||||
|
|
||||||
static GUID InterfaceGuids[3] =
|
static GUID InterfaceGuids[2] =
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
/// KS_CATEGORY_TOPOLOGY
|
/// KS_CATEGORY_TOPOLOGY
|
||||||
|
|
Loading…
Reference in a new issue