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.