linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).