905 // and app_time set time |
905 // and app_time set time |
906 correction32 = (u32)correction; |
906 correction32 = (u32)correction; |
907 system_time32 -= correction32; |
907 system_time32 -= correction32; |
908 old_offset32 = (u32) old_offset; |
908 old_offset32 = (u32) old_offset; |
909 |
909 |
910 time_diff = (u32) slave->master->app_time - system_time32; |
910 time_diff = (u32) slave->master->app_start_time - system_time32; |
911 |
911 |
912 EC_SLAVE_DBG(slave, 1, "DC system time offset calculation:" |
912 EC_SLAVE_DBG(slave, 1, "DC system time offset calculation:" |
913 " system_time=%u (corrected with %u)," |
913 " system_time=%u (corrected with %u)," |
914 " app_time=%llu, diff=%i\n", |
914 " app_start_time=%llu, diff=%i\n", |
915 system_time32, correction32, |
915 system_time32, correction32, |
916 slave->master->app_time, time_diff); |
916 slave->master->app_start_time, time_diff); |
917 |
917 |
918 if (EC_ABS(time_diff) > EC_SYSTEM_TIME_TOLERANCE_NS) { |
918 if (EC_ABS(time_diff) > EC_SYSTEM_TIME_TOLERANCE_NS) { |
919 new_offset = time_diff + old_offset32; |
919 new_offset = time_diff + old_offset32; |
920 EC_SLAVE_DBG(slave, 1, "Setting time offset to %u (was %u)\n", |
920 EC_SLAVE_DBG(slave, 1, "Setting time offset to %u (was %u)\n", |
921 new_offset, old_offset32); |
921 new_offset, old_offset32); |
942 s64 time_diff; |
942 s64 time_diff; |
943 |
943 |
944 // correct read system time by elapsed time between read operation |
944 // correct read system time by elapsed time between read operation |
945 // and app_time set time |
945 // and app_time set time |
946 system_time -= correction; |
946 system_time -= correction; |
947 time_diff = fsm->slave->master->app_time - system_time; |
947 time_diff = fsm->slave->master->app_start_time - system_time; |
948 |
948 |
949 EC_SLAVE_DBG(slave, 1, "DC system time offset calculation:" |
949 EC_SLAVE_DBG(slave, 1, "DC system time offset calculation:" |
950 " system_time=%llu (corrected with %llu)," |
950 " system_time=%llu (corrected with %llu)," |
951 " app_time=%llu, diff=%lli\n", |
951 " app_start_time=%llu, diff=%lli\n", |
952 system_time, correction, |
952 system_time, correction, |
953 slave->master->app_time, time_diff); |
953 slave->master->app_start_time, time_diff); |
954 |
954 |
955 if (EC_ABS(time_diff) > EC_SYSTEM_TIME_TOLERANCE_NS) { |
955 if (EC_ABS(time_diff) > EC_SYSTEM_TIME_TOLERANCE_NS) { |
956 new_offset = time_diff + old_offset; |
956 new_offset = time_diff + old_offset; |
957 EC_SLAVE_DBG(slave, 1, "Setting time offset to %llu (was %llu)\n", |
957 EC_SLAVE_DBG(slave, 1, "Setting time offset to %llu (was %llu)\n", |
958 new_offset, old_offset); |
958 new_offset, old_offset); |