Hi Richard, Thanks for your review, will update the patchset after the comments.
>> +{ >> + struct aq_ptp_s *aq_ptp = container_of(ptp, struct aq_ptp_s, ptp_info); >> + struct aq_nic_s *aq_nic = aq_ptp->aq_nic; >> + >> + mutex_lock(&aq_nic->fwreq_mutex); > > Here you use a different lock than... > >> + >> + spin_lock_irqsave(&aq_ptp->ptp_lock, flags); > > ... here. Is it safe to concurrently set the time and the frequency? Yes, its safe. The purpose of the locks is different, mutex secures FW accesses. They could take time and should be serialized. Working with ptp clock however does not use FW, but spinlock is used to secure possible concurrent access and math over 64bit variable aq_ptp->ptp_clock_offset Regards, Igor