site_archiver(a)lists.apple.com
Delivered-To: darwin-kernel(a)lists.apple.com
Dkim-signature: a=rsa-sha256; t=1563560850; x=1564165650; s=mail; d=lynxstudio.com; c=relaxed/relaxed; v=1; bh=eQtL1gl8zly7GY98rmBACL6HgqtYE3puZxG9mD61XSI=; h=From:Subject:Date:Message-ID:To:MIME-Version:Content-Type; b=O23/NSwPfEh/NOvqm8ZOOiweNVc35ujyofOMKK35I4cQJtjYGjD6h++9RKorwP1Xd2jB2ifXDm7YEETJ1W2l0FQTQ67s95fJ3dZITmoBFV5iFU+MVMSOx//iN/4OJlgzCSib5vW5FdDNgg8X8SDAmGHbYU4Bpef1FUOStx7it70=
Organization: Lynx Studio Technology, Inc.
Thread-index: AdU+XzmujePD4sboRZ27ApAMlSRhyw==
Hello,
I am trying to implement PCIe pause on our kExt and cannot figure out how to
test if it is working properly.
I have added IOPCIPauseCompatible to our info.plist and System Info shows
"Pause Compatible: Yes" for our kExt.
Following the example from IOService.cpp, I have added:
static const IOPMPowerState powerStatesV2[kNumberOfPowerStates] =
{
// verison, capabilityFlags, outputPowerCharacter,
inputPowerRequirement
{ kIOPMPowerStateVersion2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ kIOPMPowerStateVersion2, 0, kIOPMSoftSleep, kIOPMSoftSleep, 0, 1,
0, 0, 0, 0, 0, 0 },
{ kIOPMPowerStateVersion2, kIOPMPowerOn, kIOPMPowerOn, kIOPMPowerOn,
0, 3, 0, 0, 0, 0, 0, 0 },
{ kIOPMPowerStateVersion2, kIOPMConfigRetained, kIOPMConfigRetained,
kIOPMConfigRetained, 0, 2, 0, 0, 0, 0, 0, 0 }
};
static const IOPMPowerState powerStatesV1[kNumberOfPowerStates-1] =
{
// verison, capabilityFlags, outputPowerCharacter,
inputPowerRequirement
{ kIOPMPowerStateVersion1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ kIOPMPowerStateVersion1, 0, kIOPMSoftSleep, kIOPMSoftSleep, 0, 1,
0, 0, 0, 0, 0, 0 },
{ kIOPMPowerStateVersion1, kIOPMPowerOn, kIOPMPowerOn, kIOPMPowerOn,
0, 3, 0, 0, 0, 0, 0, 0 },
};
PMinit();
if (kIOReturnSuccess != registerPowerDriver( this, (IOPMPowerState
*)powerStatesV2, kIOPCIDevicePowerStateCount ))
{
IOLog( "registerPowerDriver V2 failed!\n" );
if( kIOReturnSuccess != registerPowerDriver( this, (IOPMPowerState
*)powerStatesV1, kIOPCIDevicePowerStateCount-1 ) )
{
IOLog( "registerPowerDriver V1 failed!\n" );
}
}
pIOServiceProvider->joinPMtree( this );
and here is the code just to see if it is working:
/////////////////////////////////////////////////////////////////
IOReturn LynxAudioDevice::setPowerState( unsigned long whichState,
IOService * whatDevice )
/////////////////////////////////////////////////////////////////
{
IOLog("setPowerState( %lu )\n", whichState );
return IOAudioDevice::setPowerState( whichState, whatDevice );
// also tried returning IOPMAckImplied with no difference
}
I have added the pci flags to the boot-args with: sudo nvram
boot-args="pci=0x200" which should mean every PCIe device that is
added/removed will generate a new setPowerState call to put the device into
pause mode.
When I load the driver is see:
setPowerState( 2 )
setPowerState( 1 )
which doesn't seem to correspond to the powerStatesV2 table passed into
registerPowerDriver. I never see another setPowerState call no matter what
PCIe devices are added or removed.
Does anyone have any experience with PCIe pause? What am I missing to get
this working so I can actually test this?
Thank you,
David A. Hoatson
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (Darwin-kernel(a)lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists…
This email sent to site_archiver(a)lists.apple.com
site_archiver(a)lists.apple.com
Delivered-To: darwin-kernel(a)lists.apple.com
Thread-index: AQHVOa8HwSdbRlrN3UWtf54Gggti1w==
Thread-topic: Subscription continues if it is possible
Von meinem Huawei-Mobiltelefon gesendet
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (Darwin-kernel(a)lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists…
This email sent to site_archiver(a)lists.apple.com
site_archiver(a)lists.apple.com
Delivered-To: darwin-kernel(a)lists.apple.com
Folks,
Control socket uses AF_SYSTEM. Can NKE IP filter, filters them ?
I need to look at the flow diagram, but I thought PF_SOCK can not be filtered.
Thanks,
Prokash
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (Darwin-kernel(a)lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/darwin-kernel/site_archiver%40lists…
This email sent to site_archiver(a)lists.apple.com