ptp device strangeness

From: Tim Sander
Date: Fri Sep 01 2017 - 11:38:36 EST


Hi

I am currently using ptp on a Altera/Intel SOC with a dp8640 PHY.
PTP functionality seems to be right. But i am doing timestamping
with gpio0 and sometimes i loose the sync of the stamping and
the events. So i would like to read out all messages. Reading O_NONBLOCK
does not work so i tried polling from usermode with the below code:

np = poll(&ev, 1, 0);
ev.fd=ptpDev;
ev.events = POLLIN;
if (np>0) {
if (ev.revents>0) {
std::cout<<"discarded ptp event"<<std::endl;
read(ptpDev, &event, sizeof(event));
}
But as confirmed in the debugger np=1 and read blocks forever.
I don't think that this is correct behavior?

For pinning down this misbehavior I would like to know it this is a local
problem of my hardware or if this is a general problem with the ptp chardev
interface?

I am currently on 4.11.12. As this is the latest preempt rt release.

Best regards
Tim