---
name: "ata_wait_register"
section: "9"
platform: "linux"
package: "linux-manual-4.9"
version: "4.9.228-1"
release: "Debian 9 (Stretch)"
platforms: ["linux"]
url: "https://new.carta.tech/ata_wait_register"
---

# ata\_wait\_register(9)

wait until register value changes

## NAME

ata\_wait\_register - wait until register value changes

## SYNOPSIS

**u32 ata\_wait\_register(struct ata\_port \*** *ap***, void \_\_iomem \*** *reg***, u32** *mask***, u32** *val***, unsigned long** *interval***, unsigned long** *timeout***);**

## ARGUMENTS

*ap*

ATA port to wait register for, can be NULL

*reg*

IO-mapped register

*mask*

Mask to apply to read register value

*val*

Wait condition

*interval*

polling interval in milliseconds

*timeout*

timeout in milliseconds

## DESCRIPTION

Waiting for some bits of register to change is a common operation for ATA controllers. This function reads 32bit LE IO-mapped register *reg* and tests for the following condition.

(\**reg* & mask) != val

If the condition is met, it returns; otherwise, the process is repeated after *interval\_msec* until timeout.

LOCKING: Kernel thread context (may sleep)

## RETURN

The final register value.

## AUTHOR

**Jeff Garzik**

Author.

## COPYRIGHT
