On Tuesday 20 May 2008, Sergei Shtylyov wrote: > Hello. > > Bartlomiej Zolnierkiewicz wrote: > > > Start DMA engine and set PC_FLAG_DMA_IN_PROGRESS flag in > > idefloppy_transfer_pc1() instead of idefloppy_issue_pc() > > Good. I have long ago noticed that DMA is started too early in ide-floppy > which is known to cobfuse some chips (like PDC20246) and was going to do a > patch at first but the lack of hardware (and time) stopped me... > > > so the Status Register and the Interrupt Reason Register > > are checked first. > > > Cc: Borislav Petkov <petkovbb@xxxxxxxxx> > > Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx> > > > Index: b/drivers/ide/ide-floppy.c > > =================================================================== > > --- a/drivers/ide/ide-floppy.c > > +++ b/drivers/ide/ide-floppy.c > [...] > > @@ -568,6 +569,12 @@ static ide_startstop_t idefloppy_transfe > > > > ide_set_handler(drive, &idefloppy_pc_intr, timeout, expiry); > > > > + /* Begin DMA, if necessary */ > > + if (pc->flags & PC_FLAG_DMA_OK) { > > + pc->flags |= PC_FLAG_DMA_IN_PROGRESS; > > + hwif->dma_ops->dma_start(drive); > > + } > > + > > May be too early still... ide-cd does this after writing the command packet. I would rather say that ide-cd is doing things too late. Now that's your patch opportunity! No excuses this time... ;) Thanks, Bart -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html