lkml.org 
[lkml]   [2008]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 22/40] ide-floppy: start DMA engine in idefloppy_transfer_pc1()
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@gmail.com>
> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>

> 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.

WBR, Sergei


\
 
 \ /
  Last update: 2008-05-20 13:03    [W:0.177 / U:0.596 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site