linux/drivers/ide
Sergei Shtylyov 836c0063c7 [PATCH] ide: HPT3xxN clocking fixes
Fix serious problems with the HPT372N clock turnaround code:

- the wrong ports were written to when called for the secondary channel;

- it didn't serialize access to the channels;

- turnaround shou;dn't be done on 66 MHz PCI;

- caching the clock mode per-channel caused it to get out of sync with the
  actual register value.

Additionally, avoid calibrating PLL twice (for each channel) as the second try
results in a wrong PCI frequency and thus in the wrong timings.

Make the driver deal with HPT302N and HPT371N correctly -- the clocking and
(seemingly) a need for clock tunaround is the same as for HPT372N.  HPT371/N
chips have only one, secondary channel, so avoid touching their "pure virtual"
primary channel, and disable it if the BIOS haven't done this already.

Also, while at it, disable UltraATA/133 for HPT372 by default -- 50 MHz DPLL
clock don't allow for this speed anyway.  And remove the traces of the former
bad patch that wasn't even applicable to this version of driver.

Has been tested on HPT370/371N, unfortunately I don't have an instant access
to the other chips...

Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-13 09:05:55 -08:00
..
arm Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
cris Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
h8300 fix file specification in comments 2006-10-03 23:01:26 +02:00
legacy [PATCH] pcmcia: conf.ConfigBase and conf.Present consolidation 2006-12-04 20:12:02 -05:00
mips [PATCH] swarm: Actually initialize the IDE driver 2006-10-06 08:53:41 -07:00
pci [PATCH] ide: HPT3xxN clocking fixes 2006-12-13 09:05:55 -08:00
ppc fix file specification in comments 2006-10-03 23:01:26 +02:00
Kconfig kconfig: Standardize "depends" -> "depends on" in Kconfig files 2006-12-12 20:04:19 +01:00
Makefile [IDE] Add driver for Sibyte Swarm evaluation board 2005-11-17 16:23:50 +00:00
ide-cd.c [PATCH] ide-cd: Handle strange interrupt on the Intel ESB2 2006-12-10 09:57:20 -08:00
ide-cd.h [PATCH] ide-cd: remove write-only cmd field from struct cdrom_info 2005-12-15 02:20:49 +01:00
ide-disk.c [PATCH] Split struct request ->flags into two parts 2006-09-30 20:23:37 +02:00
ide-dma.c [PATCH] ide: remove dma_base2 field from ide_hwif_t 2006-10-03 08:04:08 -07:00
ide-floppy.c Fix misc .c/.h comment typos 2006-11-30 05:24:39 +01:00
ide-generic.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ide-io.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
ide-iops.c [PATCH] ide: Fix crash on repeated reset 2006-10-03 08:04:08 -07:00
ide-lib.c [PATCH] ide_dma_speed() fixes 2006-10-03 08:04:07 -07:00
ide-pnp.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ide-probe.c [PATCH] remove blk_queue_activity_fn 2006-12-12 10:22:23 +01:00
ide-proc.c [PATCH] IDE core: driver layer error checking 2006-10-03 08:04:08 -07:00
ide-tape.c [PATCH] completions: lockdep annotate on stack completions 2006-10-01 00:39:24 -07:00
ide-taskfile.c [PATCH] ide: add sanity checking to ide taskfile ioctl 2006-10-16 08:27:54 -07:00
ide-timing.h [PATCH] ide: actually honor drive's minimum PIO/DMA cycle times 2006-06-26 09:58:27 -07:00
ide.c [PATCH] lockdep: fix ide/proc interaction 2006-12-07 08:39:32 -08:00
setup-pci.c [PATCH] ide: complete switch to pci_get 2006-12-10 09:55:40 -08:00