diff --git a/kernel/nv-drm.c b/kernel/nv-drm.c index 0d37447..823b3c5 100644 --- a/kernel/nv-drm.c +++ b/kernel/nv-drm.c @@ -121,7 +121,7 @@ int __init nv_drm_init( { int ret = 0; #if defined(NV_DRM_AVAILABLE) - ret = drm_pci_init(&nv_drm_driver, pci_driver); + ret = drm_legacy_pci_init(&nv_drm_driver, pci_driver); #endif return ret; } @@ -131,6 +131,6 @@ void nv_drm_exit( ) { #if defined(NV_DRM_AVAILABLE) - drm_pci_exit(&nv_drm_driver, pci_driver); + drm_legacy_pci_exit(&nv_drm_driver, pci_driver); #endif } diff --git a/kernel/nv.c b/kernel/nv.c index 7c9bb1f..7d31456 100644 --- a/kernel/nv.c +++ b/kernel/nv.c @@ -301,7 +301,7 @@ irqreturn_t nv_kern_isr(int, void *, struct pt_regs *); #else irqreturn_t nv_kern_isr(int, void *); #endif -void nv_kern_rc_timer(unsigned long); +void nv_kern_rc_timer(struct timer_list*); #if defined(NV_PM_SUPPORT_OLD_STYLE_APM) static int nv_kern_apm_event(struct pm_dev *, pm_request_t, void *); #endif @@ -2075,10 +2075,10 @@ void nv_kern_isr_bh( } void nv_kern_rc_timer( - unsigned long data + struct timer_list *timer ) { - nv_linux_state_t *nvl = (nv_linux_state_t *) data; + nv_linux_state_t *nvl = from_timer(nvl, timer, rc_timer); nv_state_t *nv = NV_STATE_PTR(nvl); NV_CHECK_PCI_CONFIG_SPACE(nvl->timer_sp, nv, TRUE, TRUE, FALSE); @@ -3029,9 +3029,7 @@ int NV_API_CALL nv_start_rc_timer( return -1; nv_printf(NV_DBG_INFO, "NVRM: initializing rc timer\n"); - init_timer(&nvl->rc_timer); - nvl->rc_timer.function = nv_kern_rc_timer; - nvl->rc_timer.data = (unsigned long) nv; + timer_setup(&nvl->rc_timer, nv_kern_rc_timer, 0); nv->rc_timer_enabled = 1; mod_timer(&nvl->rc_timer, jiffies + HZ); /* set our timeout for 1 second */ nv_printf(NV_DBG_INFO, "NVRM: rc timer initialized\n");