drivers: Update timer APIs for Linux v6.15

In Linux v6.15, the timer APIs hrtimer_init() and del_timer() have been
removed. The hrtimer_setup() was added in Linux v6.13 to replace
hrtimer_init() and hrtimer_init() have finally been removed. The
functions del_timer()/del_timer_sync() were renamed to
timer_delete()/timer_delete_sync() in Linux v6.15. Use conftest to
detect these changes and update the drivers as necessary.

JIRA LINQPJ14-47

Change-Id: Id3994900384aad4b91155507cda91e04898ab12c
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3336168
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: Brad Griffis <bgriffis@nvidia.com>
GVS: buildbot_gerritrpt <buildbot_gerritrpt@nvidia.com>
Reviewed-by: svcacv <svcacv@nvidia.com>
This commit is contained in:
Jon Hunter
2025-04-08 13:30:51 +01:00
parent 1d9d3c1755
commit a59a10dfeb
13 changed files with 125 additions and 23 deletions

View File

@@ -509,7 +509,11 @@ static int set_mode(struct nvpps_device_data *pdev_data, u32 mode)
if (!pdev_data->only_timer_mode) {
if (pdev_data->timer_inited) {
pdev_data->timer_inited = false;
#if defined(NV_TIMER_DELETE_PRESENT) /* Linux v6.15 */
timer_delete_sync(&pdev_data->timer);
#else
del_timer_sync(&pdev_data->timer);
#endif
}
if (!pdev_data->irq_registered) {
/* register IRQ handler */
@@ -1377,7 +1381,11 @@ static int nvpps_remove(struct platform_device *pdev)
if (pdev_data) {
if (pdev_data->timer_inited) {
pdev_data->timer_inited = false;
#if defined(NV_TIMER_DELETE_PRESENT) /* Linux v6.15 */
timer_delete_sync(&pdev_data->timer);
#else
del_timer_sync(&pdev_data->timer);
#endif
}
if (pdev_data->mac_base_addr) {
devm_iounmap(&pdev->dev, pdev_data->mac_base_addr);
@@ -1385,7 +1393,11 @@ static int nvpps_remove(struct platform_device *pdev)
pdev_data->mac_base_addr);
}
if (pdev_data->support_tsc) {
#if defined(NV_TIMER_DELETE_PRESENT) /* Linux v6.15 */
timer_delete_sync(&pdev_data->tsc_timer);
#else
del_timer_sync(&pdev_data->tsc_timer);
#endif
iounmap(pdev_data->tsc_reg_map_base);
}
device_destroy(s_nvpps_class, pdev_data->dev->devt);