ata_exec_internal — execute libata internal command


unsigned ata_exec_internal (struct ata_device * dev,
 struct ata_taskfile * tf,
 const u8 * cdb,
 int dma_dir,
 void * buf,
 unsigned int buflen,
 unsigned long timeout);


struct ata_device * dev

Device to which the command is sent

struct ata_taskfile * tf

Taskfile registers for the command and the result

const u8 * cdb

CDB for packet command

int dma_dir

Data transfer direction of the command

void * buf

Data buffer of the command

unsigned int buflen

Length of data buffer

unsigned long timeout

Timeout in msecs (0 for default)


Wrapper around ata_exec_internal_sg which takes simple buffer instead of sg list.

LOCKING: None. Should be called with kernel context, might sleep.


Zero on success, AC_ERR_* mask on failure