static void asr_enable(void) { unsigned char reg; spin_lock(&asr_lock); if (asr_type == ASMTYPE_TOPAZ) { /* asr_write_addr == asr_read_addr */ reg = inb(asr_read_addr); outb(reg & ~(TOPAZ_ASR_TOGGLE | TOPAZ_ASR_DISABLE), asr_read_addr); } else { /* * First make sure the hardware timer is reset by toggling * ASR hardware timer line. */ __asr_toggle(); reg = inb(asr_read_addr); outb(reg & ~asr_disable_mask, asr_write_addr); } reg = inb(asr_read_addr); spin_unlock(&asr_lock); }
static void asr_enable(void) { unsigned char reg; spin_lock(&asr_lock); if (asr_type == ASMTYPE_TOPAZ) { /* */ reg = inb(asr_read_addr); outb(reg & ~(TOPAZ_ASR_TOGGLE | TOPAZ_ASR_DISABLE), asr_read_addr); } else { /* */ __asr_toggle(); reg = inb(asr_read_addr); outb(reg & ~asr_disable_mask, asr_write_addr); } reg = inb(asr_read_addr); spin_unlock(&asr_lock); }
static void asr_toggle(void) { spin_lock(&asr_lock); __asr_toggle(); spin_unlock(&asr_lock); }