[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20061012152356.GE6515@kernel.dk>
Date: Thu, 12 Oct 2006 17:23:57 +0200
From: Jens Axboe <jens.axboe@...cle.com>
To: Alex Romosan <romosan@...orax.lbl.gov>
Cc: Mike Galbraith <efault@....de>, linux-kernel@...r.kernel.org,
olaf@...fle.de
Subject: Re: 2.6.19-rc1 regression: unable to read dvd's
On Thu, Oct 12 2006, Alex Romosan wrote:
> Jens Axboe <jens.axboe@...cle.com> writes:
>
> > Mike/Alex/Olaf, can you give this a spin? Totally untested here, but I
> > think it should fix it.
> >
> > diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
> > index 69bbb62..e7513e5 100644
> > --- a/drivers/ide/ide-cd.c
> > +++ b/drivers/ide/ide-cd.c
> > @@ -597,7 +597,7 @@ static void cdrom_prepare_request(ide_dr
> > struct cdrom_info *cd = drive->driver_data;
> >
> > ide_init_drive_cmd(rq);
> > - rq->cmd_type = REQ_TYPE_BLOCK_PC;
> > + rq->cmd_type = REQ_TYPE_ATA_PC;
> > rq->rq_disk = cd->disk;
> > }
> >
> > @@ -2023,7 +2023,8 @@ ide_do_rw_cdrom (ide_drive_t *drive, str
> > }
> > info->last_block = block;
> > return action;
> > - } else if (rq->cmd_type == REQ_TYPE_SENSE) {
> > + } else if (rq->cmd_type == REQ_TYPE_SENSE ||
> > + rq->cmd_type == REQ_TYPE_ATA_PC) {
> > return cdrom_do_packet_command(drive);
> > } else if (blk_pc_request(rq)) {
> > return cdrom_do_block_pc(drive, rq);
> > diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
> > index 26f7856..d370d2c 100644
> > --- a/include/linux/blkdev.h
> > +++ b/include/linux/blkdev.h
> > @@ -157,6 +157,7 @@ enum rq_cmd_type_bits {
> > REQ_TYPE_ATA_CMD,
> > REQ_TYPE_ATA_TASK,
> > REQ_TYPE_ATA_TASKFILE,
> > + REQ_TYPE_ATA_PC,
> > };
> >
> > /*
> >
>
> with this patch applied, i can read dvd's now (using mplayer). thanks.
> i see this in syslog as the system boots up (it wasn't there before):
Argh damn, it needs this on top of it as well. Your second problem
likely stems from that missing bit, please retest with this one applied
as well.
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index e7513e5..bddfebd 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -716,7 +716,7 @@ static int cdrom_decode_status(ide_drive
ide_error(drive, "request sense failure", stat);
return 1;
- } else if (blk_pc_request(rq)) {
+ } else if (blk_pc_request(rq) || rq->cmd_type == REQ_TYPE_ATA_PC) {
/* All other functions, except for READ. */
unsigned long flags;
--
Jens Axboe
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists