Skip to content

Commit ca9a702

Browse files
committed
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
* 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev: libata: Add pata_atp867x driver for Artop/Acard ATP867X controllers pata_amd: do not filter out valid modes in nv_mode_filter sata_promise: update reset code sata_promise: disable hotplug on 1st gen chips libata: fix spurious WARN_ON_ONCE() on port freeze ahci: restore pci_intx() handling
2 parents bbe5a96 + d15d6e6 commit ca9a702

File tree

8 files changed

+704
-22
lines changed

8 files changed

+704
-22
lines changed

drivers/ata/Kconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,15 @@ config PATA_ARTOP
255255

256256
If unsure, say N.
257257

258+
config PATA_ATP867X
259+
tristate "ARTOP/Acard ATP867X PATA support"
260+
depends on PCI
261+
help
262+
This option enables support for ARTOP/Acard ATP867X PATA
263+
controllers.
264+
265+
If unsure, say N.
266+
258267
config PATA_AT32
259268
tristate "Atmel AVR32 PATA support (Experimental)"
260269
depends on AVR32 && PLATFORM_AT32AP && EXPERIMENTAL

drivers/ata/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ obj-$(CONFIG_SATA_FSL) += sata_fsl.o
2222
obj-$(CONFIG_PATA_ALI) += pata_ali.o
2323
obj-$(CONFIG_PATA_AMD) += pata_amd.o
2424
obj-$(CONFIG_PATA_ARTOP) += pata_artop.o
25+
obj-$(CONFIG_PATA_ATP867X) += pata_atp867x.o
2526
obj-$(CONFIG_PATA_AT32) += pata_at32.o
2627
obj-$(CONFIG_PATA_ATIIXP) += pata_atiixp.o
2728
obj-$(CONFIG_PATA_CMD640_PCI) += pata_cmd640.o

drivers/ata/ahci.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2930,8 +2930,8 @@ static int ahci_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
29302930
if (ahci_sb600_32bit_only(pdev))
29312931
hpriv->flags |= AHCI_HFLAG_32BIT_ONLY;
29322932

2933-
if (!(hpriv->flags & AHCI_HFLAG_NO_MSI))
2934-
pci_enable_msi(pdev);
2933+
if ((hpriv->flags & AHCI_HFLAG_NO_MSI) || pci_enable_msi(pdev))
2934+
pci_intx(pdev, 1);
29352935

29362936
/* save initial config */
29372937
ahci_save_initial_config(pdev, hpriv);

drivers/ata/libata-core.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5024,8 +5024,6 @@ void ata_qc_complete(struct ata_queued_cmd *qc)
50245024
struct ata_device *dev = qc->dev;
50255025
struct ata_eh_info *ehi = &dev->link->eh_info;
50265026

5027-
WARN_ON_ONCE(ap->pflags & ATA_PFLAG_FROZEN);
5028-
50295027
if (unlikely(qc->err_mask))
50305028
qc->flags |= ATA_QCFLAG_FAILED;
50315029

@@ -5038,6 +5036,8 @@ void ata_qc_complete(struct ata_queued_cmd *qc)
50385036
}
50395037
}
50405038

5039+
WARN_ON_ONCE(ap->pflags & ATA_PFLAG_FROZEN);
5040+
50415041
/* read result TF if requested */
50425042
if (qc->flags & ATA_QCFLAG_RESULT_TF)
50435043
fill_result_tf(qc);

drivers/ata/pata_amd.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,9 @@ static unsigned long nv_mode_filter(struct ata_device *dev,
307307
limit |= ATA_MASK_PIO;
308308
if (!(limit & (ATA_MASK_MWDMA | ATA_MASK_UDMA)))
309309
limit |= ATA_MASK_MWDMA | ATA_MASK_UDMA;
310+
/* PIO4, MWDMA2, UDMA2 should always be supported regardless of
311+
cable detection result */
312+
limit |= ata_pack_xfermask(ATA_PIO4, ATA_MWDMA2, ATA_UDMA2);
310313

311314
ata_port_printk(ap, KERN_DEBUG, "nv_mode_filter: 0x%lx&0x%lx->0x%lx, "
312315
"BIOS=0x%lx (0x%x) ACPI=0x%lx%s\n",

0 commit comments

Comments
 (0)