Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-15 Thread Jeff Garzik

Bartlomiej Zolnierkiewicz wrote:

Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
and for AEC6880[R] it is UDMA6 (not UDMA5):

* Fix the problem by adding missing struct ata_port_info to artop_init_one().

* Use the right naming (s/626/628/).

* Bump driver version.

Fixes IDE->libata regression, problem was never present in IDE aec62xx driver.

Cc: Alan Cox <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ata/pata_artop.c |   19 ++-
 1 file changed, 14 insertions(+), 5 deletions(-)


applied to #upstream-fixes


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-15 Thread Jeff Garzik

Bartlomiej Zolnierkiewicz wrote:

Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
and for AEC6880[R] it is UDMA6 (not UDMA5):

* Fix the problem by adding missing struct ata_port_info to artop_init_one().

* Use the right naming (s/626/628/).

* Bump driver version.

Fixes IDE-libata regression, problem was never present in IDE aec62xx driver.

Cc: Alan Cox [EMAIL PROTECTED]
Signed-off-by: Bartlomiej Zolnierkiewicz [EMAIL PROTECTED]
---
 drivers/ata/pata_artop.c |   19 ++-
 1 file changed, 14 insertions(+), 5 deletions(-)


applied to #upstream-fixes


-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-13 Thread Alan Cox
> > It would be nice to know why - is the cable detet coming out right on
> > this ?
> 
> The box has a short 40-wire cable, so pata_artop drops to udma/33
> while aec62xx does udma/100 without intervention. I added an override

Curious as both use the same cable detect logic. 

> to artop6260_cable_detect() to make it return PATA40_SHORT on this
> platform, and with that it does udma/100 as expected.

Patch would be good. Looks like there are a couple of cases anyway where
artop needs platform specific uglies


> 
> Read performance fluctuates quite a bit, but seems to be 1-3 MB/s
> slower than aec62xx on average. I compared lspci -vvxxx and the
> only differences are a latency setting and some ROM thingy:

Latency shouldn't matter but you can tweak the driver to verify easily
enough
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-13 Thread Alan Cox
  It would be nice to know why - is the cable detet coming out right on
  this ?
 
 The box has a short 40-wire cable, so pata_artop drops to udma/33
 while aec62xx does udma/100 without intervention. I added an override

Curious as both use the same cable detect logic. 

 to artop6260_cable_detect() to make it return PATA40_SHORT on this
 platform, and with that it does udma/100 as expected.

Patch would be good. Looks like there are a couple of cases anyway where
artop needs platform specific uglies


 
 Read performance fluctuates quite a bit, but seems to be 1-3 MB/s
 slower than aec62xx on average. I compared lspci -vvxxx and the
 only differences are a latency setting and some ROM thingy:

Latency shouldn't matter but you can tweak the driver to verify easily
enough
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-12 Thread Mikael Pettersson
On Fri, 10 Aug 2007 18:33:43 +0100, Alan Cox wrote:
> > However, I'm gettting consistently lower read throughput with pata_artop
> > (13-19 MB/s) than with aec62xx (22 MB/s) on an oldish WD drive, and using
> > pata_artop triggers a WARN_ON(irqs_disabled()) in arch/arm/mm/consistent.c:
> 
> It would be nice to know why - is the cable detet coming out right on
> this ?

The box has a short 40-wire cable, so pata_artop drops to udma/33
while aec62xx does udma/100 without intervention. I added an override
to artop6260_cable_detect() to make it return PATA40_SHORT on this
platform, and with that it does udma/100 as expected.

Read performance fluctuates quite a bit, but seems to be 1-3 MB/s
slower than aec62xx on average. I compared lspci -vvxxx and the
only differences are a latency setting and some ROM thingy:

--- lspci-ide   2007-08-12 13:07:12.0 +0200
+++ lspci-libata2007-08-12 13:12:55.0 +0200
@@ -1,32 +1,32 @@
 00:01.0 Mass storage controller: Artop Electronic Corp ATP865 NO-ROM (rev 07)
Subsystem: Artop Electronic Corp ATP865 NO-ROM
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ 
Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
SERR-  > WARNING: at arch/arm/mm/consistent.c:364 dma_free_coherent()
> 
> ARM has a problem with dma_free_coherent with IRQ disabled. Unfortunately
> under high load ARM decides to use dma_free_coherent inside
> dma_unmap_sg(). This as far as I can see is an ARM problem not a libata
> problem and one you can duplicate with other drivers under high load.

Yes, I now see that happening also with the IDE aec62xx driver.
It used to only be a single-line WARNING, only recently has the
ARM kernel started to also do a stack dump when it triggers.

/Mikael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-12 Thread Mikael Pettersson
On Fri, 10 Aug 2007 18:33:43 +0100, Alan Cox wrote:
  However, I'm gettting consistently lower read throughput with pata_artop
  (13-19 MB/s) than with aec62xx (22 MB/s) on an oldish WD drive, and using
  pata_artop triggers a WARN_ON(irqs_disabled()) in arch/arm/mm/consistent.c:
 
 It would be nice to know why - is the cable detet coming out right on
 this ?

The box has a short 40-wire cable, so pata_artop drops to udma/33
while aec62xx does udma/100 without intervention. I added an override
to artop6260_cable_detect() to make it return PATA40_SHORT on this
platform, and with that it does udma/100 as expected.

Read performance fluctuates quite a bit, but seems to be 1-3 MB/s
slower than aec62xx on average. I compared lspci -vvxxx and the
only differences are a latency setting and some ROM thingy:

--- lspci-ide   2007-08-12 13:07:12.0 +0200
+++ lspci-libata2007-08-12 13:12:55.0 +0200
@@ -1,32 +1,32 @@
 00:01.0 Mass storage controller: Artop Electronic Corp ATP865 NO-ROM (rev 07)
Subsystem: Artop Electronic Corp ATP865 NO-ROM
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ 
Stepping- SERR+ FastB2B-
Status: Cap+ 66Mhz- UDF- FastB2B+ ParErr- DEVSEL=medium TAbort- 
TAbort- MAbort- SERR- PERR-
-   Latency: 0 (2750ns min, 1000ns max), Cache Line Size 08
+   Latency: 144 (2750ns min, 1000ns max), Cache Line Size 08
Interrupt: pin A routed to IRQ 28
Region 0: I/O ports at 1050 [size=8]
Region 1: I/O ports at 1060 [size=4]
Region 2: I/O ports at 1058 [size=8]
Region 3: I/O ports at 1064 [size=4]
Region 4: I/O ports at 1040 [size=16]
-   Expansion ROM at 4800 [disabled by cmd] [size=64K]
+   Expansion ROM at 4800 [disabled] [size=64K]
Capabilities: [58] Power Management version 2
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA 
PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
-00: 91 11 08 00 45 01 90 02 07 00 80 01 08 00 00 00
+00: 91 11 08 00 45 01 90 02 07 00 80 01 08 90 00 00
 10: 51 10 00 00 61 10 00 00 59 10 00 00 65 10 00 00
 20: 41 10 00 00 00 00 00 00 00 00 00 00 91 11 08 00
-30: 01 00 00 48 58 00 00 00 00 00 00 00 1c 01 0b 04
+30: 00 00 00 48 58 00 00 00 00 00 00 00 1c 01 0b 04
 40: 31 00 00 00 06 00 00 00 70 84 96 00 00 00 00 02
 50: ff ff ff ff f0 ff 34 50 01 00 02 06 00 00 00 00
 60: 31 00 00 00 06 00 00 00 70 84 96 00 00 00 00 02
 70: 00 00 00 00 f0 ff 34 50 01 00 02 06 00 00 00 00
 80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 c0: 31 00 00 00 06 00 00 00 70 84 96 00 00 00 00 02
 d0: 00 00 00 00 f0 ff 34 50 01 00 02 06 00 00 00 00
 e0: 31 00 00 00 06 00 00 00 70 84 96 00 00 00 00 02
 f0: 00 00 00 00 f0 ff 34 50 01 00 02 06 00 00 00 00

  WARNING: at arch/arm/mm/consistent.c:364 dma_free_coherent()
 
 ARM has a problem with dma_free_coherent with IRQ disabled. Unfortunately
 under high load ARM decides to use dma_free_coherent inside
 dma_unmap_sg(). This as far as I can see is an ARM problem not a libata
 problem and one you can duplicate with other drivers under high load.

Yes, I now see that happening also with the IDE aec62xx driver.
It used to only be a single-line WARNING, only recently has the
ARM kernel started to also do a stack dump when it triggers.

/Mikael
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-10 Thread Alan Cox
> Tested on ATP865 (1191:0008 rev 07) in a DS101 box (an ARM-based NAS).
> Seems to work fine.

Its tested fairly hard on several NAS boxes (and still needs a fix for
one)

> However, I'm gettting consistently lower read throughput with pata_artop
> (13-19 MB/s) than with aec62xx (22 MB/s) on an oldish WD drive, and using
> pata_artop triggers a WARN_ON(irqs_disabled()) in arch/arm/mm/consistent.c:

It would be nice to know why - is the cable detet coming out right on
this ?

> WARNING: at arch/arm/mm/consistent.c:364 dma_free_coherent()

ARM has a problem with dma_free_coherent with IRQ disabled. Unfortunately
under high load ARM decides to use dma_free_coherent inside
dma_unmap_sg(). This as far as I can see is an ARM problem not a libata
problem and one you can duplicate with other drivers under high load.

If any ARM people can tell me what is going on and help fix it either in
ARM or libata that would be great.

Alan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-10 Thread Mikael Pettersson
On Fri, 10 Aug 2007 01:45:38 +0200, Bartlomiej Zolnierkiewicz wrote:
> On Friday 10 August 2007, Alan Cox wrote:
> > On Thu, 9 Aug 2007 23:19:34 +0200
> > Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]> wrote:
> > 
> > > 
> > > Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
> > > and for AEC6880[R] it is UDMA6 (not UDMA5):
> > > 
> > > * Fix the problem by adding missing struct ata_port_info to 
> > > artop_init_one().
> > > 
> > > * Use the right naming (s/626/628/).
> > > 
> > > * Bump driver version.
> > > 
> > > Fixes IDE->libata regression, problem was never present in IDE aec62xx 
> > > driver.
> > 
> > Have you tested this ??
> 
> -ENODEV so no and testing is welcomed.
> 
> However I went over both drivers to make sure that this change is safe
> and correct.
> 
> BTW presence of the above bugs would strongly indicate that pata_artop has
> never been tested (properly) with AEC6x80[R], otherwise these bugs should
> have been noticed and fixed much earlier.

Tested on ATP865 (1191:0008 rev 07) in a DS101 box (an ARM-based NAS).
Seems to work fine.

However, I'm gettting consistently lower read throughput with pata_artop
(13-19 MB/s) than with aec62xx (22 MB/s) on an oldish WD drive, and using
pata_artop triggers a WARN_ON(irqs_disabled()) in arch/arm/mm/consistent.c:

WARNING: at arch/arm/mm/consistent.c:364 dma_free_coherent()
[] (dump_stack+0x0/0x14) from [] 
(dma_free_coherent+0x38/0x200)
[] (dma_free_coherent+0x0/0x200) from [] 
(dma_unmap_sg+0x15c/0x198)
[] (dma_unmap_sg+0x0/0x198) from [] 
(ata_sg_clean+0xe4/0x1dc)
[] (ata_sg_clean+0x0/0x1dc) from [] 
(__ata_qc_complete+0x4c/0xcc)
 r8:c02eca20 r7:0004 r6:c02ec000 r5:c02ec000 r4:c02eca20
[] (__ata_qc_complete+0x0/0xcc) from [] 
(ata_qc_complete+0xa0/0xe4)
 r5:c02eca20 r4:c02eca20
[] (ata_qc_complete+0x0/0xe4) from [] 
(ata_hsm_qc_complete+0x104/0x10c)
 r4:
[] (ata_hsm_qc_complete+0x0/0x10c) from [] 
(ata_hsm_move+0x63c/0x694)
 r6:c02ec000 r5:0050 r4:
[] (ata_hsm_move+0x0/0x694) from [] 
(ata_interrupt+0x188/0x240)
[] (ata_interrupt+0x0/0x240) from [] 
(handle_IRQ_event+0x44/0x84)
[] (handle_IRQ_event+0x0/0x84) from [] 
(handle_level_irq+0xb0/0x108)
 r7:c02250e8 r6: r5:001c r4:c020e600
[] (handle_level_irq+0x0/0x108) from [] 
(__exception_text_start+0x44/0x60)
 r5:c020e600 r4:001c
[] (__exception_text_start+0x0/0x60) from [] 
(__irq_svc+0x24/0x60)
Exception stack(0xc0209f64 to 0xc0209fac)
9f60:   0002   c001cfa0 c0208000 c0018de8 
9f80: c02250e8 00017570 690541f1 0001746c c0209fc0 c0209fac c0209fac c001cd38 
9fa0: c001cfa4 6013   
 r6:1000 r5:001f r4:
[] (cpu_idle+0x0/0x8c) from [] (rest_init+0x48/0x58)
 r5:c02174d0 r4:c021fa58
[] (rest_init+0x0/0x58) from [] (start_kernel+0x238/0x294)
[] (start_kernel+0x0/0x294) from [<8038>] (0x8038)

So far I've only seen this happen when I run hdparm -Tt /dev/sda.

So something's still not quite right.

aec62xx is perfectly reliable on this box.

/Mikael
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-10 Thread Alan Cox
On Thu, 9 Aug 2007 23:19:34 +0200
Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]> wrote:

> 
> Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
> and for AEC6880[R] it is UDMA6 (not UDMA5):
> 
> * Fix the problem by adding missing struct ata_port_info to artop_init_one().
> 
> * Use the right naming (s/626/628/).
> 
> * Bump driver version.
> 
> Fixes IDE->libata regression, problem was never present in IDE aec62xx driver.
> 
> Cc: Alan Cox <[EMAIL PROTECTED]>
> Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>

Acked-by: Alan Cox <[EMAIL PROTECTED]>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-10 Thread Alan Cox
> BTW presence of the above bugs would strongly indicate that pata_artop has
> never been tested (properly) with AEC6x80[R], otherwise these bugs should
> have been noticed and fixed much earlier.

People don't seem to notice minor speed limiting errors, and its a pretty
obscure controller too. Not suprised (it took ages for them to notice the
CMD64x one too).

It has however been tested and works pretty well for most cases. There's
one platform where you have to hack both drivers to make them work which
I need to investigate further.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-10 Thread Alan Cox
 Tested on ATP865 (1191:0008 rev 07) in a DS101 box (an ARM-based NAS).
 Seems to work fine.

Its tested fairly hard on several NAS boxes (and still needs a fix for
one)

 However, I'm gettting consistently lower read throughput with pata_artop
 (13-19 MB/s) than with aec62xx (22 MB/s) on an oldish WD drive, and using
 pata_artop triggers a WARN_ON(irqs_disabled()) in arch/arm/mm/consistent.c:

It would be nice to know why - is the cable detet coming out right on
this ?

 WARNING: at arch/arm/mm/consistent.c:364 dma_free_coherent()

ARM has a problem with dma_free_coherent with IRQ disabled. Unfortunately
under high load ARM decides to use dma_free_coherent inside
dma_unmap_sg(). This as far as I can see is an ARM problem not a libata
problem and one you can duplicate with other drivers under high load.

If any ARM people can tell me what is going on and help fix it either in
ARM or libata that would be great.

Alan
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-10 Thread Alan Cox
On Thu, 9 Aug 2007 23:19:34 +0200
Bartlomiej Zolnierkiewicz [EMAIL PROTECTED] wrote:

 
 Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
 and for AEC6880[R] it is UDMA6 (not UDMA5):
 
 * Fix the problem by adding missing struct ata_port_info to artop_init_one().
 
 * Use the right naming (s/626/628/).
 
 * Bump driver version.
 
 Fixes IDE-libata regression, problem was never present in IDE aec62xx driver.
 
 Cc: Alan Cox [EMAIL PROTECTED]
 Signed-off-by: Bartlomiej Zolnierkiewicz [EMAIL PROTECTED]

Acked-by: Alan Cox [EMAIL PROTECTED]
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-10 Thread Alan Cox
 BTW presence of the above bugs would strongly indicate that pata_artop has
 never been tested (properly) with AEC6x80[R], otherwise these bugs should
 have been noticed and fixed much earlier.

People don't seem to notice minor speed limiting errors, and its a pretty
obscure controller too. Not suprised (it took ages for them to notice the
CMD64x one too).

It has however been tested and works pretty well for most cases. There's
one platform where you have to hack both drivers to make them work which
I need to investigate further.

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-10 Thread Mikael Pettersson
On Fri, 10 Aug 2007 01:45:38 +0200, Bartlomiej Zolnierkiewicz wrote:
 On Friday 10 August 2007, Alan Cox wrote:
  On Thu, 9 Aug 2007 23:19:34 +0200
  Bartlomiej Zolnierkiewicz [EMAIL PROTECTED] wrote:
  
   
   Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
   and for AEC6880[R] it is UDMA6 (not UDMA5):
   
   * Fix the problem by adding missing struct ata_port_info to 
   artop_init_one().
   
   * Use the right naming (s/626/628/).
   
   * Bump driver version.
   
   Fixes IDE-libata regression, problem was never present in IDE aec62xx 
   driver.
  
  Have you tested this ??
 
 -ENODEV so no and testing is welcomed.
 
 However I went over both drivers to make sure that this change is safe
 and correct.
 
 BTW presence of the above bugs would strongly indicate that pata_artop has
 never been tested (properly) with AEC6x80[R], otherwise these bugs should
 have been noticed and fixed much earlier.

Tested on ATP865 (1191:0008 rev 07) in a DS101 box (an ARM-based NAS).
Seems to work fine.

However, I'm gettting consistently lower read throughput with pata_artop
(13-19 MB/s) than with aec62xx (22 MB/s) on an oldish WD drive, and using
pata_artop triggers a WARN_ON(irqs_disabled()) in arch/arm/mm/consistent.c:

WARNING: at arch/arm/mm/consistent.c:364 dma_free_coherent()
[c001fe7c] (dump_stack+0x0/0x14) from [c00210ec] 
(dma_free_coherent+0x38/0x200)
[c00210b4] (dma_free_coherent+0x0/0x200) from [c00253a8] 
(dma_unmap_sg+0x15c/0x198)
[c002524c] (dma_unmap_sg+0x0/0x198) from [c0111984] 
(ata_sg_clean+0xe4/0x1dc)
[c01118a0] (ata_sg_clean+0x0/0x1dc) from [c0111ac8] 
(__ata_qc_complete+0x4c/0xcc)
 r8:c02eca20 r7:0004 r6:c02ec000 r5:c02ec000 r4:c02eca20
[c0111a7c] (__ata_qc_complete+0x0/0xcc) from [c0111be8] 
(ata_qc_complete+0xa0/0xe4)
 r5:c02eca20 r4:c02eca20
[c0111b48] (ata_qc_complete+0x0/0xe4) from [c01121b8] 
(ata_hsm_qc_complete+0x104/0x10c)
 r4:
[c01120b4] (ata_hsm_qc_complete+0x0/0x10c) from [c01127fc] 
(ata_hsm_move+0x63c/0x694)
 r6:c02ec000 r5:0050 r4:
[c01121c0] (ata_hsm_move+0x0/0x694) from [c0116628] 
(ata_interrupt+0x188/0x240)
[c01164a0] (ata_interrupt+0x0/0x240) from [c0051b24] 
(handle_IRQ_event+0x44/0x84)
[c0051ae0] (handle_IRQ_event+0x0/0x84) from [c005339c] 
(handle_level_irq+0xb0/0x108)
 r7:c02250e8 r6: r5:001c r4:c020e600
[c00532ec] (handle_level_irq+0x0/0x108) from [c001b044] 
(__exception_text_start+0x44/0x60)
 r5:c020e600 r4:001c
[c001b000] (__exception_text_start+0x0/0x60) from [c001ba44] 
(__irq_svc+0x24/0x60)
Exception stack(0xc0209f64 to 0xc0209fac)
9f60:   0002   c001cfa0 c0208000 c0018de8 
9f80: c02250e8 00017570 690541f1 0001746c c0209fc0 c0209fac c0209fac c001cd38 
9fa0: c001cfa4 6013   
 r6:1000 r5:001f r4:
[c001cce4] (cpu_idle+0x0/0x8c) from [c018f020] (rest_init+0x48/0x58)
 r5:c02174d0 r4:c021fa58
[c018efd8] (rest_init+0x0/0x58) from [c0008b7c] (start_kernel+0x238/0x294)
[c0008944] (start_kernel+0x0/0x294) from [8038] (0x8038)

So far I've only seen this happen when I run hdparm -Tt /dev/sda.

So something's still not quite right.

aec62xx is perfectly reliable on this box.

/Mikael
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-09 Thread Bartlomiej Zolnierkiewicz
On Friday 10 August 2007, Alan Cox wrote:
> On Thu, 9 Aug 2007 23:19:34 +0200
> Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]> wrote:
> 
> > 
> > Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
> > and for AEC6880[R] it is UDMA6 (not UDMA5):
> > 
> > * Fix the problem by adding missing struct ata_port_info to 
> > artop_init_one().
> > 
> > * Use the right naming (s/626/628/).
> > 
> > * Bump driver version.
> > 
> > Fixes IDE->libata regression, problem was never present in IDE aec62xx 
> > driver.
> 
> Have you tested this ??

-ENODEV so no and testing is welcomed.

However I went over both drivers to make sure that this change is safe
and correct.

BTW presence of the above bugs would strongly indicate that pata_artop has
never been tested (properly) with AEC6x80[R], otherwise these bugs should
have been noticed and fixed much earlier.

Thanks,
Bart
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-09 Thread Alan Cox
On Thu, 9 Aug 2007 23:19:34 +0200
Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]> wrote:

> 
> Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
> and for AEC6880[R] it is UDMA6 (not UDMA5):
> 
> * Fix the problem by adding missing struct ata_port_info to artop_init_one().
> 
> * Use the right naming (s/626/628/).
> 
> * Bump driver version.
> 
> Fixes IDE->libata regression, problem was never present in IDE aec62xx driver.

Have you tested this ??

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-09 Thread Bartlomiej Zolnierkiewicz

Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
and for AEC6880[R] it is UDMA6 (not UDMA5):

* Fix the problem by adding missing struct ata_port_info to artop_init_one().

* Use the right naming (s/626/628/).

* Bump driver version.

Fixes IDE->libata regression, problem was never present in IDE aec62xx driver.

Cc: Alan Cox <[EMAIL PROTECTED]>
Signed-off-by: Bartlomiej Zolnierkiewicz <[EMAIL PROTECTED]>
---
 drivers/ata/pata_artop.c |   19 ++-
 1 file changed, 14 insertions(+), 5 deletions(-)

Index: b/drivers/ata/pata_artop.c
===
--- a/drivers/ata/pata_artop.c
+++ b/drivers/ata/pata_artop.c
@@ -2,6 +2,7 @@
  *pata_artop.c - ARTOP ATA controller driver
  *
  * (C) 2006 Red Hat <[EMAIL PROTECTED]>
+ * (C) 2007 Bartlomiej Zolnierkiewicz
  *
  *Based in part on drivers/ide/pci/aec62xx.c
  * Copyright (C) 1999-2002 Andre Hedrick <[EMAIL PROTECTED]>
@@ -28,7 +29,7 @@
 #include 
 
 #define DRV_NAME   "pata_artop"
-#define DRV_VERSION"0.4.3"
+#define DRV_VERSION"0.4.4"
 
 /*
  * The ARTOP has 33 Mhz and "over clocked" timing tables. Until we
@@ -430,7 +431,7 @@ static int artop_init_one (struct pci_de
.udma_mask  = ATA_UDMA4,
.port_ops   = _ops,
};
-   static const struct ata_port_info info_626x_fast = {
+   static const struct ata_port_info info_628x = {
.sht= _sht,
.flags  = ATA_FLAG_SLAVE_POSS,
.pio_mask   = 0x1f, /* pio0-4 */
@@ -438,6 +439,14 @@ static int artop_init_one (struct pci_de
.udma_mask  = ATA_UDMA5,
.port_ops   = _ops,
};
+   static const struct ata_port_info info_628x_fast = {
+   .sht= _sht,
+   .flags  = ATA_FLAG_SLAVE_POSS,
+   .pio_mask   = 0x1f, /* pio0-4 */
+   .mwdma_mask = 0x07, /* mwdma0-2 */
+   .udma_mask  = ATA_UDMA6,
+   .port_ops   = _ops,
+   };
const struct ata_port_info *ppi[] = { NULL, NULL };
 
if (!printed_version++)
@@ -455,13 +464,13 @@ static int artop_init_one (struct pci_de
}
else if (id->driver_data == 1)  /* 6260 */
ppi[0] = _626x;
-   else if (id->driver_data == 2)  { /* 6260 or 6260 + fast */
+   else if (id->driver_data == 2)  { /* 6280 or 6280 + fast */
unsigned long io = pci_resource_start(pdev, 4);
u8 reg;
 
-   ppi[0] = _626x;
+   ppi[0] = _628x;
if (inb(io) & 0x10)
-   ppi[0] = _626x_fast;
+   ppi[0] = _628x_fast;
/* Mac systems come up with some registers not set as we
   will need them */
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-09 Thread Bartlomiej Zolnierkiewicz

Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
and for AEC6880[R] it is UDMA6 (not UDMA5):

* Fix the problem by adding missing struct ata_port_info to artop_init_one().

* Use the right naming (s/626/628/).

* Bump driver version.

Fixes IDE-libata regression, problem was never present in IDE aec62xx driver.

Cc: Alan Cox [EMAIL PROTECTED]
Signed-off-by: Bartlomiej Zolnierkiewicz [EMAIL PROTECTED]
---
 drivers/ata/pata_artop.c |   19 ++-
 1 file changed, 14 insertions(+), 5 deletions(-)

Index: b/drivers/ata/pata_artop.c
===
--- a/drivers/ata/pata_artop.c
+++ b/drivers/ata/pata_artop.c
@@ -2,6 +2,7 @@
  *pata_artop.c - ARTOP ATA controller driver
  *
  * (C) 2006 Red Hat [EMAIL PROTECTED]
+ * (C) 2007 Bartlomiej Zolnierkiewicz
  *
  *Based in part on drivers/ide/pci/aec62xx.c
  * Copyright (C) 1999-2002 Andre Hedrick [EMAIL PROTECTED]
@@ -28,7 +29,7 @@
 #include linux/ata.h
 
 #define DRV_NAME   pata_artop
-#define DRV_VERSION0.4.3
+#define DRV_VERSION0.4.4
 
 /*
  * The ARTOP has 33 Mhz and over clocked timing tables. Until we
@@ -430,7 +431,7 @@ static int artop_init_one (struct pci_de
.udma_mask  = ATA_UDMA4,
.port_ops   = artop6260_ops,
};
-   static const struct ata_port_info info_626x_fast = {
+   static const struct ata_port_info info_628x = {
.sht= artop_sht,
.flags  = ATA_FLAG_SLAVE_POSS,
.pio_mask   = 0x1f, /* pio0-4 */
@@ -438,6 +439,14 @@ static int artop_init_one (struct pci_de
.udma_mask  = ATA_UDMA5,
.port_ops   = artop6260_ops,
};
+   static const struct ata_port_info info_628x_fast = {
+   .sht= artop_sht,
+   .flags  = ATA_FLAG_SLAVE_POSS,
+   .pio_mask   = 0x1f, /* pio0-4 */
+   .mwdma_mask = 0x07, /* mwdma0-2 */
+   .udma_mask  = ATA_UDMA6,
+   .port_ops   = artop6260_ops,
+   };
const struct ata_port_info *ppi[] = { NULL, NULL };
 
if (!printed_version++)
@@ -455,13 +464,13 @@ static int artop_init_one (struct pci_de
}
else if (id-driver_data == 1)  /* 6260 */
ppi[0] = info_626x;
-   else if (id-driver_data == 2)  { /* 6260 or 6260 + fast */
+   else if (id-driver_data == 2)  { /* 6280 or 6280 + fast */
unsigned long io = pci_resource_start(pdev, 4);
u8 reg;
 
-   ppi[0] = info_626x;
+   ppi[0] = info_628x;
if (inb(io)  0x10)
-   ppi[0] = info_626x_fast;
+   ppi[0] = info_628x_fast;
/* Mac systems come up with some registers not set as we
   will need them */
 
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-09 Thread Alan Cox
On Thu, 9 Aug 2007 23:19:34 +0200
Bartlomiej Zolnierkiewicz [EMAIL PROTECTED] wrote:

 
 Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
 and for AEC6880[R] it is UDMA6 (not UDMA5):
 
 * Fix the problem by adding missing struct ata_port_info to artop_init_one().
 
 * Use the right naming (s/626/628/).
 
 * Bump driver version.
 
 Fixes IDE-libata regression, problem was never present in IDE aec62xx driver.

Have you tested this ??

-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH] pata_artop: fix UDMA5 for AEC6280[R] and UDMA6 for AEC6880[R]

2007-08-09 Thread Bartlomiej Zolnierkiewicz
On Friday 10 August 2007, Alan Cox wrote:
 On Thu, 9 Aug 2007 23:19:34 +0200
 Bartlomiej Zolnierkiewicz [EMAIL PROTECTED] wrote:
 
  
  Maximum supported UDMA mode for AEC6280[R] is UDMA5 (not UDMA4)
  and for AEC6880[R] it is UDMA6 (not UDMA5):
  
  * Fix the problem by adding missing struct ata_port_info to 
  artop_init_one().
  
  * Use the right naming (s/626/628/).
  
  * Bump driver version.
  
  Fixes IDE-libata regression, problem was never present in IDE aec62xx 
  driver.
 
 Have you tested this ??

-ENODEV so no and testing is welcomed.

However I went over both drivers to make sure that this change is safe
and correct.

BTW presence of the above bugs would strongly indicate that pata_artop has
never been tested (properly) with AEC6x80[R], otherwise these bugs should
have been noticed and fixed much earlier.

Thanks,
Bart
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/