aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-03-31 14:15:13 -0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2009-03-31 14:15:13 -0400
commita08915ba594da66145f33a972db578a58b9135f1 (patch)
treed27379ab4ff2b101a74ffe594e2dfa2939131ee0 /include/linux
parent5ed57ad705d6b58386ac43d2ca1c8fc66aee1101 (diff)
ide-cd: use scatterlists for PIO transfers (fs requests)
* Export ide_pio_bytes(). * Add ->last_xfer_len field to struct ide_cmd. * Add ide_cd_error_cmd() helper to ide-cd. * Convert ide-cd to use scatterlists also for PIO transfers (fs requests only for now) and get rid of partial completions (except when the error happens -- which is still subject to change later because looking at ATAPI spec it seems that the device is free to error the whole transfer with setting the Error bit only on the last transfer chunk). * Update ide_cd_{prepare_rw,restore_request,do_request}() accordingly. * Inline ide_cd_restore_request() into cdrom_start_rw(). Cc: Borislav Petkov <petkovbb@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ide.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index d5d832271f44..c2841c0c36c8 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -352,6 +352,8 @@ struct ide_cmd {
352 352
353 unsigned int nbytes; 353 unsigned int nbytes;
354 unsigned int nleft; 354 unsigned int nleft;
355 unsigned int last_xfer_len;
356
355 struct scatterlist *cursg; 357 struct scatterlist *cursg;
356 unsigned int cursg_ofs; 358 unsigned int cursg_ofs;
357 359
@@ -1226,6 +1228,8 @@ ide_startstop_t ide_issue_pc(ide_drive_t *, struct ide_cmd *);
1226 1228
1227ide_startstop_t do_rw_taskfile(ide_drive_t *, struct ide_cmd *); 1229ide_startstop_t do_rw_taskfile(ide_drive_t *, struct ide_cmd *);
1228 1230
1231void ide_pio_bytes(ide_drive_t *, struct ide_cmd *, unsigned int, unsigned int);
1232
1229void ide_finish_cmd(ide_drive_t *, struct ide_cmd *, u8); 1233void ide_finish_cmd(ide_drive_t *, struct ide_cmd *, u8);
1230 1234
1231int ide_raw_taskfile(ide_drive_t *, struct ide_cmd *, u8 *, u16); 1235int ide_raw_taskfile(ide_drive_t *, struct ide_cmd *, u8 *, u16);