sata_link_hardreset
Prev | Chapter 4. libata Library | Next

## Name

sata_link_hardreset — reset link via SATA phy reset

## Synopsis

`int sata_link_hardreset (` | struct ata_link * link,
| const unsigned long * timing,
| unsigned long deadline,
| bool * online,
| int (*check_ready) `(`struct ata_link *`)``)`;

## Arguments

`link`

  link to reset

`timing`

  timing parameters { interval, duratinon, timeout } in msec

`deadline`

  deadline jiffies for the operation

`online`

  optional out parameter indicating link onlineness

`check_ready`

  optional callback to check link readiness

## Description

SATA phy-reset `link` using DET bits of SControl register. After hardreset, link readiness is waited upon using `ata_wait_ready` if `check_ready` is specified. LLDs are allowed to not specify `check_ready` and wait itself after this function returns. Device classification is LLD's responsibility.

*`online` is set to one iff reset succeeded and `link` is online after reset.

## LOCKING

Kernel thread context (may sleep)

## RETURNS

0 on success, -errno otherwise.

Prev | Up | Next
ata_std_prereset | Home | sata_std_hardreset