Lines Matching refs:pcwd_private

189 } pcwd_private;  variable
229 outb_p(control_status, pcwd_private.io_addr + 2); in send_isa_command()
232 port0 = inb_p(pcwd_private.io_addr); in send_isa_command()
235 port0 = inb_p(pcwd_private.io_addr); in send_isa_command()
255 spin_lock(&pcwd_private.io_lock); in set_command_mode()
263 outb_p(0x00, pcwd_private.io_addr + 2); in set_command_mode()
265 outb_p(0x00, pcwd_private.io_addr + 2); in set_command_mode()
270 spin_unlock(&pcwd_private.io_lock); in set_command_mode()
271 pcwd_private.command_mode = found; in set_command_mode()
274 pr_debug("command_mode=%d\n", pcwd_private.command_mode); in set_command_mode()
282 spin_lock(&pcwd_private.io_lock); in unset_command_mode()
283 outb_p(0x00, pcwd_private.io_addr + 2); in unset_command_mode()
285 spin_unlock(&pcwd_private.io_lock); in unset_command_mode()
287 pcwd_private.command_mode = 0; in unset_command_mode()
290 pr_debug("command_mode=%d\n", pcwd_private.command_mode); in unset_command_mode()
295 if (inb(pcwd_private.io_addr) != 0xF0) in pcwd_check_temperature_support()
296 pcwd_private.supports_temp = 1; in pcwd_check_temperature_support()
303 strcpy(pcwd_private.fw_ver_str, "ERROR"); in pcwd_get_firmware()
310 sprintf(pcwd_private.fw_ver_str, "%c.%c%c%c", in pcwd_get_firmware()
336 if (pcwd_private.revision == PCWD_REVISION_A) in pcwd_show_card_info()
338 pcwd_private.io_addr); in pcwd_show_card_info()
339 else if (pcwd_private.revision == PCWD_REVISION_C) { in pcwd_show_card_info()
342 pcwd_private.io_addr, pcwd_private.fw_ver_str); in pcwd_show_card_info()
356 if (pcwd_private.supports_temp) in pcwd_show_card_info()
359 if (pcwd_private.boot_status & WDIOF_CARDRESET) in pcwd_show_card_info()
362 if (pcwd_private.boot_status & WDIOF_OVERHEAT) { in pcwd_show_card_info()
367 if (pcwd_private.boot_status == 0) in pcwd_show_card_info()
377 if (time_before(jiffies, pcwd_private.next_heartbeat)) { in pcwd_timer_ping()
379 spin_lock(&pcwd_private.io_lock); in pcwd_timer_ping()
380 if (pcwd_private.revision == PCWD_REVISION_A) { in pcwd_timer_ping()
383 wdrst_stat = inb_p(pcwd_private.io_addr); in pcwd_timer_ping()
387 outb_p(wdrst_stat, pcwd_private.io_addr + 1); in pcwd_timer_ping()
390 outb_p(0x00, pcwd_private.io_addr); in pcwd_timer_ping()
394 mod_timer(&pcwd_private.timer, jiffies + WDT_INTERVAL); in pcwd_timer_ping()
396 spin_unlock(&pcwd_private.io_lock); in pcwd_timer_ping()
406 pcwd_private.next_heartbeat = jiffies + (heartbeat * HZ); in pcwd_start()
409 mod_timer(&pcwd_private.timer, jiffies + WDT_INTERVAL); in pcwd_start()
412 if (pcwd_private.revision == PCWD_REVISION_C) { in pcwd_start()
413 spin_lock(&pcwd_private.io_lock); in pcwd_start()
414 outb_p(0x00, pcwd_private.io_addr + 3); in pcwd_start()
416 stat_reg = inb_p(pcwd_private.io_addr + 2); in pcwd_start()
417 spin_unlock(&pcwd_private.io_lock); in pcwd_start()
435 timer_delete(&pcwd_private.timer); in pcwd_stop()
438 if (pcwd_private.revision == PCWD_REVISION_C) { in pcwd_stop()
439 spin_lock(&pcwd_private.io_lock); in pcwd_stop()
440 outb_p(0xA5, pcwd_private.io_addr + 3); in pcwd_stop()
442 outb_p(0xA5, pcwd_private.io_addr + 3); in pcwd_stop()
444 stat_reg = inb_p(pcwd_private.io_addr + 2); in pcwd_stop()
445 spin_unlock(&pcwd_private.io_lock); in pcwd_stop()
461 pcwd_private.next_heartbeat = jiffies + (heartbeat * HZ); in pcwd_keepalive()
487 spin_lock(&pcwd_private.io_lock); in pcwd_get_status()
488 if (pcwd_private.revision == PCWD_REVISION_A) in pcwd_get_status()
492 control_status = inb(pcwd_private.io_addr); in pcwd_get_status()
499 control_status = inb(pcwd_private.io_addr + 1); in pcwd_get_status()
501 spin_unlock(&pcwd_private.io_lock); in pcwd_get_status()
503 if (pcwd_private.revision == PCWD_REVISION_A) { in pcwd_get_status()
534 if (pcwd_private.revision == PCWD_REVISION_C) { in pcwd_clear_status()
535 spin_lock(&pcwd_private.io_lock); in pcwd_clear_status()
540 control_status = inb_p(pcwd_private.io_addr + 1); in pcwd_clear_status()
550 pcwd_private.io_addr + 1); in pcwd_clear_status()
552 spin_unlock(&pcwd_private.io_lock); in pcwd_clear_status()
560 if (pcwd_private.command_mode) in pcwd_get_temperature()
564 if (!pcwd_private.supports_temp) in pcwd_get_temperature()
571 spin_lock(&pcwd_private.io_lock); in pcwd_get_temperature()
572 *temperature = ((inb(pcwd_private.io_addr)) * 9 / 5) + 32; in pcwd_get_temperature()
573 spin_unlock(&pcwd_private.io_lock); in pcwd_get_temperature()
614 return put_user(pcwd_private.boot_status, argp); in pcwd_ioctl()
623 if (pcwd_private.revision == PCWD_REVISION_C) { in pcwd_ioctl()
735 if (!pcwd_private.supports_temp) in pcwd_temp_open()
786 spin_lock(&pcwd_private.io_lock); in get_revision()
789 if ((inb(pcwd_private.io_addr + 2) == 0xFF) || in get_revision()
790 (inb(pcwd_private.io_addr + 3) == 0xFF)) in get_revision()
792 spin_unlock(&pcwd_private.io_lock); in get_revision()
870 pcwd_private.io_addr = pcwd_ioports[id]; in pcwd_isa_probe()
872 spin_lock_init(&pcwd_private.io_lock); in pcwd_isa_probe()
875 pcwd_private.revision = get_revision(); in pcwd_isa_probe()
877 if (!request_region(pcwd_private.io_addr, in pcwd_isa_probe()
878 (pcwd_private.revision == PCWD_REVISION_A) ? 2 : 4, "PCWD")) { in pcwd_isa_probe()
880 pcwd_private.io_addr); in pcwd_isa_probe()
886 pcwd_private.supports_temp = 0; in pcwd_isa_probe()
888 pcwd_private.boot_status = 0x0000; in pcwd_isa_probe()
891 pcwd_get_status(&pcwd_private.boot_status); in pcwd_isa_probe()
896 timer_setup(&pcwd_private.timer, pcwd_timer_ping, 0); in pcwd_isa_probe()
919 if (pcwd_private.supports_temp) { in pcwd_isa_probe()
941 if (pcwd_private.supports_temp) in pcwd_isa_probe()
944 release_region(pcwd_private.io_addr, in pcwd_isa_probe()
945 (pcwd_private.revision == PCWD_REVISION_A) ? 2 : 4); in pcwd_isa_probe()
947 pcwd_private.io_addr = 0x0000; in pcwd_isa_probe()
963 if (pcwd_private.supports_temp) in pcwd_isa_remove()
965 release_region(pcwd_private.io_addr, in pcwd_isa_remove()
966 (pcwd_private.revision == PCWD_REVISION_A) ? 2 : 4); in pcwd_isa_remove()
967 pcwd_private.io_addr = 0x0000; in pcwd_isa_remove()