ata_wait_register
Prev | Chapter 4. libata Library | Next

## Name

ata_wait_register — wait until register value changes

## Synopsis

`u32 ata_wait_register (` | void __iomem * | reg,
| u32 | mask,
| u32 | val,
| unsigned long | interval_msec,
| unsigned long | timeout_msec`)`;

## Arguments

`reg`

  IO-mapped register

`mask`

  Mask to apply to read register value

`val`

  Wait condition

`interval_msec`

  polling interval in milliseconds

`timeout_msec`

  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)

## RETURNS

The final register value.

Prev | Up | Next
ata_pci_remove_one | Home | Chapter 5. libata Core Internals