[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <45F956B4.1060309@xandros.com>
Date: Thu, 15 Mar 2007 10:22:44 -0400
From: Woody Suwalski <woodys@...dros.com>
To: Sergei Shtylyov <sshtylyov@...mvista.com>
cc: Bartlomiej Zolnierkiewicz <bzolnier@...il.com>,
linux-ide@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 10/13] sl82c105: add ->speedproc support
Sergei Shtylyov wrote:
> Hello, I wrote:
>
>>>> Bartlomiej Zolnierkiewicz wrote:
>
>>>>> [PATCH] sl82c105: add ->speedproc support
>
>>>>> * add sl82c105_tunepio() wrapper for sl82c105_tune_drive()
>>>>> (just to get the error value)
>
>>>>> * add sl82c105_tune_chipset() (->speedproc method) for setting
>>>>> transfer mode
>
>>>> Thanks for the patch!
>
>>>> > Index: b/drivers/ide/pci/sl82c105.c
>
>>>>> ===================================================================
>>>>> --- a/drivers/ide/pci/sl82c105.c
>>>>> +++ b/drivers/ide/pci/sl82c105.c
>
>> [...]
>
>>>>> @@ -114,17 +114,45 @@ static void sl82c105_tune_drive(ide_driv
>>>>> */
>>>>> drive->io_32bit = 1;
>>>>> drive->unmask = 1;
>>>>> +
>>>>> + return 0;
>>>>> +}
>>>>> +
>>>>> +static void sl82c105_tune_drive(ide_drive_t *drive, u8 pio)
>>>>> +{
>>>>> + /*
>>>>> + * TODO: find best PIO mode and set device speed here
>>>>> + * (requires adding helper function for getting PIO
>>>>> cycle time)
>>>>> + */
>
>>>> I thought we were doing it by calling ide_get_best_pio_mode()
>>>> above...
>
>>> We are also using ide_get_best_pio_mode() to get PIO cycle time
>>> so we can't move it here ATM.
>
>> I've found/used quite convenient workaround for that -- return PIO
>> mode actually selected from xxx_tune_pio(), then call
>> ide_config_drive_speed() from the real tuneproc() method.
>
> Works like charm with ignoring the result, since
> ide_get_best_pio_mode() returns the same explicit mode as was passed
> to it -- so is good for the speedproc() methods also...
>
>>>>> + (void)sl82c105_tunepio(drive, pio);
>
>>>> Erm, I thought afterwards that I vainly folded one into another.
>>>> I think it's worth moving those io_32bit and unmask flag
>>>> assignments above back there... May also recast my patch. :-)
>
>>> Moving them to ->init_hwif where they belong would be even better...
>>> ;-)
>
>> Well, I wasn't sure where they belong... :-)
>> So, OK to recast that patch?
>
> Recasted it and reworked your patch atop of it (adding MWDMA 0/1
> support as a bonus! :-) -- now need to conduct some testing on a
> remote target...
>
>>>>> +static int sl82c105_tune_chipset(ide_drive_t *drive, u8 mode)
>>>>> +{
>>>>> + mode = ide_rate_filter(drive, mode);
>>>>> +
>>>>> + if (mode >= XFER_PIO_0 && mode <= XFER_PIO_5)
>>>>> + return sl82c105_tunepio(drive, mode - XFER_PIO_0);
>>>>> +
>>>>> + /*
>>>>> + * TODO: add MWDMA0/1 support
>>>>> + */
>>>>> + BUG_ON(mode != XFER_MW_DMA_2);
>
> I wonder is there are some W83C554 users anywhere -- that chipset
> also supports UltraDMA...
>
> MBR, Sergei
Sergei,
ARM Netwinder machines are running hard disk IDE on SL82c105.
Could you send me the actual source file to try (or a patch)?
Thanks, Woody
-
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