* [PATCH 1/6] qd65xx: fix PIO mode selection
@ 2007-06-23 18:02 Bartlomiej Zolnierkiewicz
2007-06-23 18:13 ` Sergei Shtylyov
2007-06-23 19:42 ` Alan Cox
0 siblings, 2 replies; 5+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2007-06-23 18:02 UTC (permalink / raw)
To: linux-ide
PIO4 is a maximum PIO mode supported by a driver. Using "255" as a max_mode
argument to ide_get_best_pio_mode() could result in wrong timings being used
by a driver (for "pio" equal to 5) or OOPS (for "pio" values > 5 && < 255).
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
---
drivers/ide/legacy/qd65xx.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
Index: b/drivers/ide/legacy/qd65xx.c
===================================================================
--- a/drivers/ide/legacy/qd65xx.c
+++ b/drivers/ide/legacy/qd65xx.c
@@ -258,8 +258,7 @@ static void qd6580_tune_drive (ide_drive
int recovery_time = 415; /* worst case values from the dos driver */
if (drive->id && !qd_find_disk_type(drive, &active_time, &recovery_time)) {
- pio = ide_get_best_pio_mode(drive, pio, 255, &d);
- pio = min_t(u8, pio, 4);
+ pio = ide_get_best_pio_mode(drive, pio, 4, &d);
switch (pio) {
case 0: break;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/6] qd65xx: fix PIO mode selection
2007-06-23 18:02 [PATCH 1/6] qd65xx: fix PIO mode selection Bartlomiej Zolnierkiewicz
@ 2007-06-23 18:13 ` Sergei Shtylyov
2007-06-23 19:42 ` Alan Cox
1 sibling, 0 replies; 5+ messages in thread
From: Sergei Shtylyov @ 2007-06-23 18:13 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: linux-ide
Bartlomiej Zolnierkiewicz wrote:
> PIO4 is a maximum PIO mode supported by a driver. Using "255" as a max_mode
> argument to ide_get_best_pio_mode() could result in wrong timings being used
> by a driver (for "pio" equal to 5) or OOPS (for "pio" values > 5 && < 255).
>
> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Acked-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
> ---
> drivers/ide/legacy/qd65xx.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> Index: b/drivers/ide/legacy/qd65xx.c
> ===================================================================
> --- a/drivers/ide/legacy/qd65xx.c
> +++ b/drivers/ide/legacy/qd65xx.c
> @@ -258,8 +258,7 @@ static void qd6580_tune_drive (ide_drive
> int recovery_time = 415; /* worst case values from the dos driver */
>
> if (drive->id && !qd_find_disk_type(drive, &active_time, &recovery_time)) {
> - pio = ide_get_best_pio_mode(drive, pio, 255, &d);
> - pio = min_t(u8, pio, 4);
> + pio = ide_get_best_pio_mode(drive, pio, 4, &d);
>
> switch (pio) {
> case 0: break;
MBR, Sergei
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/6] qd65xx: fix PIO mode selection
2007-06-23 18:02 [PATCH 1/6] qd65xx: fix PIO mode selection Bartlomiej Zolnierkiewicz
2007-06-23 18:13 ` Sergei Shtylyov
@ 2007-06-23 19:42 ` Alan Cox
2007-06-23 19:48 ` Sergei Shtylyov
2007-06-23 22:08 ` Bartlomiej Zolnierkiewicz
1 sibling, 2 replies; 5+ messages in thread
From: Alan Cox @ 2007-06-23 19:42 UTC (permalink / raw)
To: Bartlomiej Zolnierkiewicz; +Cc: linux-ide
On Sat, 23 Jun 2007 20:02:07 +0200
Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> wrote:
>
> PIO4 is a maximum PIO mode supported by a driver. Using "255" as a max_mode
> argument to ide_get_best_pio_mode() could result in wrong timings being used
> by a driver (for "pio" equal to 5) or OOPS (for "pio" values > 5 && < 255).
The qdi6580 driver is somewhat hosed. The libata one worked on the single
VLB test case we managed to rig up. Registers are in VLB clocks (usually
33MHz). I need to fix the failed single channel test case then persuade
the VLB using nutter to test again 8)
Registers you need are:
2 * timing:
bit 0-3 active in VLB clocks (whacky as its 17 - bitvalue)
bit 4-7 recover (15 - value) [don't use < 2 ]
3
bit 0 Pri/Sec enabled
bit 1 Primary enabled only
bit 2-6 write as 1
bit 7 - Prefetch/Postwrite (ATA disk only) [this is global]
The timing stuff is a bit whacko:
If both channels are in use then timing source 0 is channel 0, timing
source 1 is channel 1. If single channel is in use then timing source 0
is channel 0 primary, and timing source 1 is channel 0 slave
Possibly we should just drop support as I know of only one user and thats
purely to test the code
Alan
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/6] qd65xx: fix PIO mode selection
2007-06-23 19:42 ` Alan Cox
@ 2007-06-23 19:48 ` Sergei Shtylyov
2007-06-23 22:08 ` Bartlomiej Zolnierkiewicz
1 sibling, 0 replies; 5+ messages in thread
From: Sergei Shtylyov @ 2007-06-23 19:48 UTC (permalink / raw)
To: Alan Cox; +Cc: Bartlomiej Zolnierkiewicz, linux-ide
Hello.
Alan Cox wrote:
>>PIO4 is a maximum PIO mode supported by a driver. Using "255" as a max_mode
>>argument to ide_get_best_pio_mode() could result in wrong timings being used
>>by a driver (for "pio" equal to 5) or OOPS (for "pio" values > 5 && < 255).
> The qdi6580 driver is somewhat hosed. The libata one worked on the single
[...]
> Possibly we should just drop support as I know of only one user and thats
> purely to test the code
I remember actually using this piece of [insert yourself] back in 199[45],
not in Linux though... :-)
> Alan
MBR, Sergei
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/6] qd65xx: fix PIO mode selection
2007-06-23 19:42 ` Alan Cox
2007-06-23 19:48 ` Sergei Shtylyov
@ 2007-06-23 22:08 ` Bartlomiej Zolnierkiewicz
1 sibling, 0 replies; 5+ messages in thread
From: Bartlomiej Zolnierkiewicz @ 2007-06-23 22:08 UTC (permalink / raw)
To: Alan Cox; +Cc: linux-ide
On Saturday 23 June 2007, Alan Cox wrote:
> Possibly we should just drop support as I know of only one user and thats
> purely to test the code
Fine with me, please send a patch.
PS Added yours "Reviewed-by:" to this patch as I still need to push it
(I have other patches in the queue depending on it).
Thanks,
Bart
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-06-23 22:07 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-23 18:02 [PATCH 1/6] qd65xx: fix PIO mode selection Bartlomiej Zolnierkiewicz
2007-06-23 18:13 ` Sergei Shtylyov
2007-06-23 19:42 ` Alan Cox
2007-06-23 19:48 ` Sergei Shtylyov
2007-06-23 22:08 ` Bartlomiej Zolnierkiewicz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).