lkml.org 
[lkml]   [2009]   [Feb]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] ide: use ide_complete_cmd() for REQ_UNPARK_HEADS
    Date
    From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    Subject: [PATCH] ide: use ide_complete_cmd() for REQ_UNPARK_HEADS

    * Fixup ->tf_flags in ide_do_park_unpark() to match their current use.

    * Use ide_complete_cmd() for REQ_UNPARK_HEADS.

    While at it:

    * No need to read Error register for PM requests in task_no_data_intr().

    Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    ---
    replaces "ide: use ide_complete_cmd() for PM commands" patch

    [ as a result of 'take 2' of "ide: move request type specific
    code from ide_end_drive_cmd() to callers" patch ]

    drivers/ide/ide-park.c | 4 ++--
    drivers/ide/ide-taskfile.c | 10 +++++-----
    2 files changed, 7 insertions(+), 7 deletions(-)

    Index: b/drivers/ide/ide-park.c
    ===================================================================
    --- a/drivers/ide/ide-park.c
    +++ b/drivers/ide/ide-park.c
    @@ -74,11 +74,11 @@ ide_startstop_t ide_do_park_unpark(ide_d
    tf->lbal = 0x4c;
    tf->lbam = 0x4e;
    tf->lbah = 0x55;
    - cmd.tf_flags |= IDE_TFLAG_CUSTOM_HANDLER;
    + cmd.tf_flags = IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
    } else /* cmd == REQ_UNPARK_HEADS */
    tf->command = ATA_CMD_CHK_POWER;

    - cmd.tf_flags |= IDE_TFLAG_TF | IDE_TFLAG_DEVICE;
    + cmd.tf_flags |= IDE_TFLAG_CUSTOM_HANDLER;
    cmd.protocol = ATA_PROT_NODATA;

    cmd.rq = rq;
    Index: b/drivers/ide/ide-taskfile.c
    ===================================================================
    --- a/drivers/ide/ide-taskfile.c
    +++ b/drivers/ide/ide-taskfile.c
    @@ -149,16 +149,16 @@ static ide_startstop_t task_no_data_intr
    if (custom && tf->command == ATA_CMD_SET_MULTI)
    drive->mult_count = drive->mult_req;

    - if (custom == 0 || tf->command == ATA_CMD_IDLEIMMEDIATE) {
    + if (custom == 0 || tf->command == ATA_CMD_IDLEIMMEDIATE ||
    + tf->command == ATA_CMD_CHK_POWER) {
    struct request *rq = hwif->rq;
    - u8 err = ide_read_error(drive);

    if (blk_pm_request(rq))
    ide_complete_pm_rq(drive, rq);
    else {
    - if (rq->cmd_type == REQ_TYPE_ATA_TASKFILE ||
    - tf->command == ATA_CMD_IDLEIMMEDIATE)
    - ide_complete_cmd(drive, cmd, stat, err);
    + u8 err = ide_read_error(drive);
    +
    + ide_complete_cmd(drive, cmd, stat, err);
    ide_complete_rq(drive, err);
    }
    }

    \
     
     \ /
      Last update: 2009-02-05 22:37    [W:0.038 / U:0.008 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site