2024-04-10 11:49:45

by D, Lakshmi Sowjanya

[permalink] [raw]
Subject: [PATCH v6 02/11] e1000e: remove convert_art_to_tsc()

From: Thomas Gleixner <[email protected]>

Remove convert_art_to_tsc() function call, Pass system clock cycles and
clocksource ID as input to get_device_system_crosststamp().

Signed-off-by: Thomas Gleixner <[email protected]>
Signed-off-by: Lakshmi Sowjanya D <[email protected]>
---
drivers/net/ethernet/intel/e1000e/ptp.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/intel/e1000e/ptp.c b/drivers/net/ethernet/intel/e1000e/ptp.c
index bbcfd529399b..89d57dd911dc 100644
--- a/drivers/net/ethernet/intel/e1000e/ptp.c
+++ b/drivers/net/ethernet/intel/e1000e/ptp.c
@@ -124,7 +124,8 @@ static int e1000e_phc_get_syncdevicetime(ktime_t *device,
sys_cycles = er32(PLTSTMPH);
sys_cycles <<= 32;
sys_cycles |= er32(PLTSTMPL);
- *system = convert_art_to_tsc(sys_cycles);
+ system->cycles = sys_cycles;
+ system->cs_id = CSID_X86_ART;

return 0;
}
--
2.35.3



2024-04-10 21:49:48

by Thomas Gleixner

[permalink] [raw]
Subject: Re: [PATCH v6 02/11] e1000e: remove convert_art_to_tsc()

On Wed, Apr 10 2024 at 17:18, [email protected] wrote:
> From: Thomas Gleixner <[email protected]>
>
> Remove convert_art_to_tsc() function call, Pass system clock cycles and
> clocksource ID as input to get_device_system_crosststamp().

This is wrong as this does not pass anything as input. The function is
called from get_device_system_crosststamp() and the data is passed back
via the system_counterval pointer. It also lacks context.

Something like this:

"The core code provides a mechanism to convert the ART base clock to
the corresponding TSC value without requiring an architecture
specific function.

All what is required is to store the ART clocksoure ID and the
cycles value in the provided system_counterval structure.

Replace the direct conversion via convert_art_to_tsc() by filling in
the required data.

No functional change intended."

Hmm?

Thanks,

tglx