diff options
Diffstat (limited to 'drivers/ide')
-rw-r--r-- | drivers/ide/ide-cd.c | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index 328d26c07798..6c31ce15210d 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c | |||
@@ -1061,22 +1061,6 @@ static void ide_cd_request_sense_fixup(struct request *rq) | |||
1061 | } | 1061 | } |
1062 | } | 1062 | } |
1063 | 1063 | ||
1064 | static ide_startstop_t cdrom_do_newpc_cont(ide_drive_t *); | ||
1065 | |||
1066 | static ide_startstop_t cdrom_do_packet_command (ide_drive_t *drive) | ||
1067 | { | ||
1068 | int len; | ||
1069 | struct request *rq = HWGROUP(drive)->rq; | ||
1070 | struct cdrom_info *info = drive->driver_data; | ||
1071 | |||
1072 | info->dma = 0; | ||
1073 | rq->cmd_flags &= ~REQ_FAILED; | ||
1074 | len = rq->data_len; | ||
1075 | |||
1076 | /* Start sending the command to the drive. */ | ||
1077 | return cdrom_start_packet_command(drive, len, cdrom_do_newpc_cont); | ||
1078 | } | ||
1079 | |||
1080 | int ide_cd_queue_pc(ide_drive_t *drive, struct request *rq) | 1064 | int ide_cd_queue_pc(ide_drive_t *drive, struct request *rq) |
1081 | { | 1065 | { |
1082 | struct request_sense sense; | 1066 | struct request_sense sense; |
@@ -1505,7 +1489,10 @@ static ide_startstop_t cdrom_do_block_pc(ide_drive_t *drive, struct request *rq) | |||
1505 | { | 1489 | { |
1506 | struct cdrom_info *info = drive->driver_data; | 1490 | struct cdrom_info *info = drive->driver_data; |
1507 | 1491 | ||
1508 | rq->cmd_flags |= REQ_QUIET; | 1492 | if (blk_pc_request(rq)) |
1493 | rq->cmd_flags |= REQ_QUIET; | ||
1494 | else | ||
1495 | rq->cmd_flags &= ~REQ_FAILED; | ||
1509 | 1496 | ||
1510 | info->dma = 0; | 1497 | info->dma = 0; |
1511 | 1498 | ||
@@ -1565,10 +1552,8 @@ ide_do_rw_cdrom (ide_drive_t *drive, struct request *rq, sector_t block) | |||
1565 | } | 1552 | } |
1566 | info->last_block = block; | 1553 | info->last_block = block; |
1567 | return action; | 1554 | return action; |
1568 | } else if (rq->cmd_type == REQ_TYPE_SENSE || | 1555 | } else if (blk_sense_request(rq) || blk_pc_request(rq) || |
1569 | rq->cmd_type == REQ_TYPE_ATA_PC) { | 1556 | rq->cmd_type == REQ_TYPE_ATA_PC) { |
1570 | return cdrom_do_packet_command(drive); | ||
1571 | } else if (blk_pc_request(rq)) { | ||
1572 | return cdrom_do_block_pc(drive, rq); | 1557 | return cdrom_do_block_pc(drive, rq); |
1573 | } else if (blk_special_request(rq)) { | 1558 | } else if (blk_special_request(rq)) { |
1574 | /* | 1559 | /* |