[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <58cb370e0701120924u7f8d0e32ta57b983ad10c502c@mail.gmail.com>
Date: Fri, 12 Jan 2007 18:24:31 +0100
From: "Bartlomiej Zolnierkiewicz" <bzolnier@...il.com>
To: Alan <alan@...rguk.ukuu.org.uk>
Cc: linux-ide@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 18/19] ide: add ide_use_fast_pio() helper
On 1/12/07, Alan <alan@...rguk.ukuu.org.uk> wrote:
> > It seems that it821x_tune_chipset() is buggy since it sends SET FEATURES
> > command even when in smart mode. Shouldn't there be "don't tune" flag
> > in it812x_fixups() to tell it821x_tune_chipset() to not send SET FEATURES
> > commands?
>
> It's itdev->smart but falls through to ide_config_drive_speed while it
> should probably just copy bits of the code from it. Thats all fixed in
> the libata driver which allows chip specific mode setup.
ide_config_drive_speed() does the following things:
1. disables host DMA
2. sends SET FEATURES command (in polling mode)
3. re-enables host DMA (only if DMA mode was set)
4. updates drive->id->dma_{ultra,mword,1word}
5. updates drive->{current,init}_speed
1. and 2. should really go to higher layers
3. obviously shouldn't be done for itdev->smart
4. also shouldn't be done for itdev>smart
(we are not changing speed mode)
5. should be done once outside of it821x_tune_chipset()
Therefore current TODO looks like:
* moving DMA fiddling code out of ide_config_drive_speed()
* setting drive->{current,init} speed in it821x_fixups()
* fixing it821x not to call ide_config_drive_speed() for itdev->smart
Fixing user space generated requests requires more work
(i.e. adding ->set_mode method)...
I'll try to cook up some patches later unless somebody beats me to it.
Thanks,
Bart
-
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