Lines Matching refs:iTCO_wdt_private
75 #define TCOBASE (iTCO_wdt_private.tco_res->start)
77 #define SMI_EN (iTCO_wdt_private.smi_res->start)
108 } iTCO_wdt_private; variable
140 return iTCO_wdt_private.iTCO_version == 3 ? secs : (secs * 10) / 6; in seconds_to_ticks()
145 return iTCO_wdt_private.iTCO_version == 3 ? ticks : (ticks * 6) / 10; in ticks_to_seconds()
152 switch (iTCO_wdt_private.iTCO_version) { in no_reboot_bit()
174 if (iTCO_wdt_private.iTCO_version >= 2) { in iTCO_wdt_set_NO_REBOOT_bit()
175 val32 = readl(iTCO_wdt_private.gcs_pmc); in iTCO_wdt_set_NO_REBOOT_bit()
177 writel(val32, iTCO_wdt_private.gcs_pmc); in iTCO_wdt_set_NO_REBOOT_bit()
178 } else if (iTCO_wdt_private.iTCO_version == 1) { in iTCO_wdt_set_NO_REBOOT_bit()
179 pci_read_config_dword(iTCO_wdt_private.pdev, 0xd4, &val32); in iTCO_wdt_set_NO_REBOOT_bit()
181 pci_write_config_dword(iTCO_wdt_private.pdev, 0xd4, val32); in iTCO_wdt_set_NO_REBOOT_bit()
191 if (iTCO_wdt_private.iTCO_version >= 2) { in iTCO_wdt_unset_NO_REBOOT_bit()
192 val32 = readl(iTCO_wdt_private.gcs_pmc); in iTCO_wdt_unset_NO_REBOOT_bit()
194 writel(val32, iTCO_wdt_private.gcs_pmc); in iTCO_wdt_unset_NO_REBOOT_bit()
196 val32 = readl(iTCO_wdt_private.gcs_pmc); in iTCO_wdt_unset_NO_REBOOT_bit()
197 } else if (iTCO_wdt_private.iTCO_version == 1) { in iTCO_wdt_unset_NO_REBOOT_bit()
198 pci_read_config_dword(iTCO_wdt_private.pdev, 0xd4, &val32); in iTCO_wdt_unset_NO_REBOOT_bit()
200 pci_write_config_dword(iTCO_wdt_private.pdev, 0xd4, val32); in iTCO_wdt_unset_NO_REBOOT_bit()
202 pci_read_config_dword(iTCO_wdt_private.pdev, 0xd4, &val32); in iTCO_wdt_unset_NO_REBOOT_bit()
215 spin_lock(&iTCO_wdt_private.io_lock); in iTCO_wdt_start()
217 iTCO_vendor_pre_start(iTCO_wdt_private.smi_res, wd_dev->timeout); in iTCO_wdt_start()
221 spin_unlock(&iTCO_wdt_private.io_lock); in iTCO_wdt_start()
228 if (iTCO_wdt_private.iTCO_version >= 2) in iTCO_wdt_start()
230 else if (iTCO_wdt_private.iTCO_version == 1) in iTCO_wdt_start()
238 spin_unlock(&iTCO_wdt_private.io_lock); in iTCO_wdt_start()
249 spin_lock(&iTCO_wdt_private.io_lock); in iTCO_wdt_stop()
251 iTCO_vendor_pre_stop(iTCO_wdt_private.smi_res); in iTCO_wdt_stop()
262 spin_unlock(&iTCO_wdt_private.io_lock); in iTCO_wdt_stop()
271 spin_lock(&iTCO_wdt_private.io_lock); in iTCO_wdt_ping()
273 iTCO_vendor_pre_keepalive(iTCO_wdt_private.smi_res, wd_dev->timeout); in iTCO_wdt_ping()
276 if (iTCO_wdt_private.iTCO_version >= 2) { in iTCO_wdt_ping()
278 } else if (iTCO_wdt_private.iTCO_version == 1) { in iTCO_wdt_ping()
286 spin_unlock(&iTCO_wdt_private.io_lock); in iTCO_wdt_ping()
299 if (iTCO_wdt_private.iTCO_version == 1) in iTCO_wdt_set_timeout()
306 if (((iTCO_wdt_private.iTCO_version >= 2) && (tmrval > 0x3ff)) || in iTCO_wdt_set_timeout()
307 ((iTCO_wdt_private.iTCO_version == 1) && (tmrval > 0x03f))) in iTCO_wdt_set_timeout()
313 if (iTCO_wdt_private.iTCO_version >= 2) { in iTCO_wdt_set_timeout()
314 spin_lock(&iTCO_wdt_private.io_lock); in iTCO_wdt_set_timeout()
320 spin_unlock(&iTCO_wdt_private.io_lock); in iTCO_wdt_set_timeout()
324 } else if (iTCO_wdt_private.iTCO_version == 1) { in iTCO_wdt_set_timeout()
325 spin_lock(&iTCO_wdt_private.io_lock); in iTCO_wdt_set_timeout()
331 spin_unlock(&iTCO_wdt_private.io_lock); in iTCO_wdt_set_timeout()
348 if (iTCO_wdt_private.iTCO_version >= 2) { in iTCO_wdt_get_timeleft()
349 spin_lock(&iTCO_wdt_private.io_lock); in iTCO_wdt_get_timeleft()
352 spin_unlock(&iTCO_wdt_private.io_lock); in iTCO_wdt_get_timeleft()
355 } else if (iTCO_wdt_private.iTCO_version == 1) { in iTCO_wdt_get_timeleft()
356 spin_lock(&iTCO_wdt_private.io_lock); in iTCO_wdt_get_timeleft()
361 spin_unlock(&iTCO_wdt_private.io_lock); in iTCO_wdt_get_timeleft()
408 release_region(iTCO_wdt_private.tco_res->start, in iTCO_wdt_cleanup()
409 resource_size(iTCO_wdt_private.tco_res)); in iTCO_wdt_cleanup()
410 release_region(iTCO_wdt_private.smi_res->start, in iTCO_wdt_cleanup()
411 resource_size(iTCO_wdt_private.smi_res)); in iTCO_wdt_cleanup()
412 if (iTCO_wdt_private.iTCO_version >= 2) { in iTCO_wdt_cleanup()
413 iounmap(iTCO_wdt_private.gcs_pmc); in iTCO_wdt_cleanup()
414 release_mem_region(iTCO_wdt_private.gcs_pmc_res->start, in iTCO_wdt_cleanup()
415 resource_size(iTCO_wdt_private.gcs_pmc_res)); in iTCO_wdt_cleanup()
418 iTCO_wdt_private.tco_res = NULL; in iTCO_wdt_cleanup()
419 iTCO_wdt_private.smi_res = NULL; in iTCO_wdt_cleanup()
420 iTCO_wdt_private.gcs_pmc_res = NULL; in iTCO_wdt_cleanup()
421 iTCO_wdt_private.gcs_pmc = NULL; in iTCO_wdt_cleanup()
433 spin_lock_init(&iTCO_wdt_private.io_lock); in iTCO_wdt_probe()
435 iTCO_wdt_private.tco_res = in iTCO_wdt_probe()
437 if (!iTCO_wdt_private.tco_res) in iTCO_wdt_probe()
440 iTCO_wdt_private.smi_res = in iTCO_wdt_probe()
442 if (!iTCO_wdt_private.smi_res) in iTCO_wdt_probe()
445 iTCO_wdt_private.iTCO_version = pdata->version; in iTCO_wdt_probe()
446 iTCO_wdt_private.dev = dev; in iTCO_wdt_probe()
447 iTCO_wdt_private.pdev = to_pci_dev(dev->dev.parent); in iTCO_wdt_probe()
453 if (iTCO_wdt_private.iTCO_version >= 2) { in iTCO_wdt_probe()
454 iTCO_wdt_private.gcs_pmc_res = platform_get_resource(dev, in iTCO_wdt_probe()
458 if (!iTCO_wdt_private.gcs_pmc_res) in iTCO_wdt_probe()
461 if (!request_mem_region(iTCO_wdt_private.gcs_pmc_res->start, in iTCO_wdt_probe()
462 resource_size(iTCO_wdt_private.gcs_pmc_res), dev->name)) { in iTCO_wdt_probe()
466 iTCO_wdt_private.gcs_pmc = ioremap(iTCO_wdt_private.gcs_pmc_res->start, in iTCO_wdt_probe()
467 resource_size(iTCO_wdt_private.gcs_pmc_res)); in iTCO_wdt_probe()
468 if (!iTCO_wdt_private.gcs_pmc) { in iTCO_wdt_probe()
485 if (!request_region(iTCO_wdt_private.smi_res->start, in iTCO_wdt_probe()
486 resource_size(iTCO_wdt_private.smi_res), dev->name)) { in iTCO_wdt_probe()
492 if (turn_SMI_watchdog_clear_off >= iTCO_wdt_private.iTCO_version) { in iTCO_wdt_probe()
502 if (!request_region(iTCO_wdt_private.tco_res->start, in iTCO_wdt_probe()
503 resource_size(iTCO_wdt_private.tco_res), dev->name)) { in iTCO_wdt_probe()
514 switch (iTCO_wdt_private.iTCO_version) { in iTCO_wdt_probe()
559 release_region(iTCO_wdt_private.tco_res->start, in iTCO_wdt_probe()
560 resource_size(iTCO_wdt_private.tco_res)); in iTCO_wdt_probe()
562 release_region(iTCO_wdt_private.smi_res->start, in iTCO_wdt_probe()
563 resource_size(iTCO_wdt_private.smi_res)); in iTCO_wdt_probe()
565 if (iTCO_wdt_private.iTCO_version >= 2) in iTCO_wdt_probe()
566 iounmap(iTCO_wdt_private.gcs_pmc); in iTCO_wdt_probe()
568 if (iTCO_wdt_private.iTCO_version >= 2) in iTCO_wdt_probe()
569 release_mem_region(iTCO_wdt_private.gcs_pmc_res->start, in iTCO_wdt_probe()
570 resource_size(iTCO_wdt_private.gcs_pmc_res)); in iTCO_wdt_probe()
572 iTCO_wdt_private.tco_res = NULL; in iTCO_wdt_probe()
573 iTCO_wdt_private.smi_res = NULL; in iTCO_wdt_probe()
574 iTCO_wdt_private.gcs_pmc_res = NULL; in iTCO_wdt_probe()
575 iTCO_wdt_private.gcs_pmc = NULL; in iTCO_wdt_probe()
582 if (iTCO_wdt_private.tco_res || iTCO_wdt_private.smi_res) in iTCO_wdt_remove()
613 iTCO_wdt_private.suspended = false; in iTCO_wdt_suspend_noirq()
617 iTCO_wdt_private.suspended = true; in iTCO_wdt_suspend_noirq()
624 if (iTCO_wdt_private.suspended) in iTCO_wdt_resume_noirq()