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.