1
linux/drivers/ata
Mikael Pettersson b2d1eee1e9 [PATCH] sata_promise fixes and updates
This patch updates the sata_promise driver as follows:
- Correct typo in definition of PDC_TBG_MODE: it's at 0x41C not 0x41
  in first-generation chips. This error caused PCI access alignment
  exceptions on SPARC64, and on all platforms it disabled the expected
  initialisation of TBG mode.
- Add flags field to struct pdc_host_priv. Define PDC_FLAG_GEN_II
  and use it to distinguish first- and second-generation chips.
- Prevent the FLASH_CTL FIFO_SHD bit from being set to 1 on second-
  generation chips. This matches Promises' ulsata2 driver.
- Prevent TBG mode and SLEW rate initialisation in second-generation chips.
  These two registers have moved, TBG mode has been redefined, and
  Promise's ulsata2 driver no longer attempts to initialise them.
- Correct PCI device table so devices 0x3570, 0x3571, and 0x3d73 are
  marked as 2057x (2nd gen) not 2037x (1st gen).
- Correct PCI device table so device 0x3d17 is marked as 40518
  (2nd gen 4 ports) not 20319 (1st gen 4 ports).
- Correct pdc_ata_init_one() to treat 20771 as a second-generation chip.

Tested on 0x3d75 (2nd gen), 0x3d73 (2nd gen), and 0x3373 (1st gen) chips.
The information comes from the newly uploaded Promise SATA HW specs,
Promise's ultra and ulsata2 drivers, and debugging on 3d75/3d73/3373 chips.

hp->hotplug_offset could now be removed and its value recomputed
in pdc_host_init() using hp->flags, but that would be a cleanup
not a functional change, so I'm ignoring it for now.

Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2006-12-01 22:46:41 -05:00
..
ahci.c [PATCH] ahci: honor PORTS_IMPL on ICH8s 2006-12-01 22:44:53 -05:00
ata_generic.c [PATCH] pci_module_init-convertion-in-ata_genericc fix 2006-12-01 22:40:25 -05:00
ata_piix.c [PATCH] ata_piix: strip now unneded MAP related stuff 2006-12-01 22:45:55 -05:00
Kconfig [libata] ARM: add ixp4xx PATA driver 2006-12-01 22:42:51 -05:00
libata-core.c [PATCH] libata: implement ata_tf_read_block() 2006-12-01 22:46:00 -05:00
libata-eh.c [PATCH] libata: improve failed qc reporting 2006-12-01 22:45:55 -05:00
libata-scsi.c [PATCH] libata: improve SCSI sense data generation 2006-12-01 22:46:00 -05:00
libata-sff.c [PATCH] libata: move ata_irq_on() into libata-sff.c 2006-12-01 22:40:28 -05:00
libata.h [PATCH] libata: implement ata_tf_read_block() 2006-12-01 22:46:00 -05:00
Makefile [libata] ARM: add ixp4xx PATA driver 2006-12-01 22:42:51 -05:00
pata_ali.c [PATCH] libata: add 40pin "short" cable support, honour drive side speed detection 2006-12-01 22:40:25 -05:00
pata_amd.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_artop.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_atiixp.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_cmd64x.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_cs5520.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_cs5530.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_cs5535.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_cypress.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_efar.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_hpt3x2n.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_hpt3x3.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_hpt37x.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_hpt366.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_isapnp.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_it821x.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_ixp4xx_cf.c [libata] ARM: add ixp4xx PATA driver 2006-12-01 22:42:51 -05:00
pata_jmicron.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_legacy.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_marvell.c [libata] pata_marvell: minor and trivial cleanups 2006-12-01 22:40:27 -05:00
pata_mpiix.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_netcell.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_ns87410.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_oldpiix.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_opti.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_optidma.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_pcmcia.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_pdc202xx_old.c [PATCH] pdc202xx_old: Fix name clashes with PA-RISC 2006-12-01 22:41:31 -05:00
pata_pdc2027x.c [PATCH] pci_module_init() conversion for pata_pdc2027x 2006-12-01 22:40:25 -05:00
pata_platform.c [PATCH] ata: Generic platform_device libata driver 2006-12-01 22:40:28 -05:00
pata_qdi.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_radisys.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_rz1000.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_sc1200.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_serverworks.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_sil680.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_sis.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_sl82c105.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_triflex.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_via.c [PATCH] libata: add missing sht->slave_destroy 2006-11-29 14:57:58 +09:00
pata_winbond.c [PATCH] libata: Winbond support 2006-12-01 22:40:24 -05: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] sata_nv: SRST sometimes fails after hotplug, use HRST_TO_RESUME 2006-12-01 22:40:29 -05:00
sata_promise.c [PATCH] sata_promise fixes and updates 2006-12-01 22:46:41 -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: implement ATA_EHI_PRINTINFO 2006-12-01 22:41:31 -05: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