1
linux/drivers/ata
Mikael Pettersson 599b7202c5 [PATCH] sata_promise: PHYMODE4 fixup
This patch adds code to fix up the PHYMODE4 "align timing"
register value on second-generation Promise SATA chips.
Failure to correct this value on non-x86 machines makes
drive detection prone to failure due to timeouts. (I've
observed about 50% detection failure rates on SPARC64.)

The HW boots with a bad value in this register, but on x86
machines the Promise BIOS corrects it to the value recommended
by the manual, so most people have been unaffected by this issue.

After developing the patch I checked Promise's SATAII driver,
and discovered that it also corrects PHYMODE4 just like this
patch does.

This patch depends on the sata_promise SATAII updates
patch I sent recently.

Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-12-03 08:05:14 -05:00
..
ahci.c [PATCH] ahci: do not powerdown during initialization 2006-12-03 17:56:29 +09:00
ata_generic.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
ata_piix.c [PATCH] libata: always use polling IDENTIFY 2006-12-03 07:58:10 -05:00
Kconfig [libata] ARM: add ixp4xx PATA driver 2006-12-01 22:42:51 -05:00
libata-core.c [PATCH] libata: always use polling IDENTIFY 2006-12-03 07:58:10 -05:00
libata-eh.c [PATCH] libata: always use polling IDENTIFY 2006-12-03 07:58:10 -05:00
libata-scsi.c [PATCH] libata: separate out rw ATA taskfile building into ata_build_rw_tf() 2006-12-03 17:56:24 +09:00
libata-sff.c [PATCH] libata: make sure IRQ is cleared after ata_bmdma_freeze() 2006-12-03 17:56:24 +09:00
libata.h [PATCH] libata: always use polling IDENTIFY 2006-12-03 07:58:10 -05:00
Makefile [libata] ARM: add ixp4xx PATA driver 2006-12-01 22:42:51 -05:00
pata_ali.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_amd.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_artop.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_atiixp.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_cmd64x.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_cs5520.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_cs5530.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_cs5535.c [libata] pata_cs5535: fix build 2006-12-03 07:57:21 -05:00
pata_cypress.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_efar.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_hpt3x2n.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_hpt3x3.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_hpt37x.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_hpt366.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_isapnp.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_it821x.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_ixp4xx_cf.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_jmicron.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_legacy.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_marvell.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_mpiix.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_netcell.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_ns87410.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_oldpiix.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_opti.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_optidma.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_pcmcia.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_pdc202xx_old.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_pdc2027x.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_platform.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_qdi.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_radisys.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_rz1000.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_sc1200.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_serverworks.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_sil680.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_sis.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_sl82c105.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_triflex.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pata_via.c [PATCH] libata: implement ATA_FLAG_SETXFER_POLLING and use it in pata_via, take #2 2006-12-03 17:56:23 +09:00
pata_winbond.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
pdc_adma.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
sata_mv.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
sata_nv.c [PATCH] libata: kill unnecessary sht->max_sectors initializations 2006-12-03 17:56:22 +09:00
sata_promise.c [PATCH] sata_promise: PHYMODE4 fixup 2006-12-03 08:05:14 -05:00
sata_promise.h Move libata to drivers/ata. 2006-08-10 07:31:37 -04:00
sata_qstor.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
sata_sil24.c [PATCH] sata_sil24: add PMP related constants 2006-12-01 22:40:29 -05:00
sata_sil.c [PATCH] libata: move BMDMA host status recording from EH to interrupt handler 2006-12-03 17:56:24 +09:00
sata_sis.c [PATCH] sata_sis: slave support on SiS965 2006-12-01 22:42:51 -05:00
sata_svw.c [PATCH] misc sata __iomem annotations 2006-10-10 15:37:21 -07:00
sata_sx4.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
sata_uli.c [libata] PCI ID table cleanup in various drivers 2006-09-28 20:21:59 -04:00
sata_via.c [libata] sata_via: fix obvious typo 2006-11-08 07:46:02 -05:00
sata_vsc.c IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00