summaryrefslogtreecommitdiffstats
path: root/drivers/ata/pata_via.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2011-10-20 15:17:34 +0200
committerArnd Bergmann <arnd@arndb.de>2011-10-20 15:17:34 +0200
commita32750c2ca6f697903b19063fc86f4272865e3a1 (patch)
tree57a23806c5358855eb426c006c88943afa683b1b /drivers/ata/pata_via.c
parent318007e9001349db9b4fcd49e9e79a7636dba7a9 (diff)
parentd870ea1d6bc5057f2599416655b42ab192dae6d0 (diff)
downloadblackbird-op-linux-a32750c2ca6f697903b19063fc86f4272865e3a1.tar.gz
blackbird-op-linux-a32750c2ca6f697903b19063fc86f4272865e3a1.zip
Merge branches 'imx/pata' and 'imx/sata' into next/driver
Conflicts: arch/arm/mach-mx5/clock-mx51-mx53.c arch/arm/mach-mx5/devices-imx53.h
Diffstat (limited to 'drivers/ata/pata_via.c')
-rw-r--r--drivers/ata/pata_via.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/drivers/ata/pata_via.c b/drivers/ata/pata_via.c
index 65e4be6be220..8e9f5048a10a 100644
--- a/drivers/ata/pata_via.c
+++ b/drivers/ata/pata_via.c
@@ -124,6 +124,17 @@ static const struct via_isa_bridge {
{ NULL }
};
+static const struct dmi_system_id no_atapi_dma_dmi_table[] = {
+ {
+ .ident = "AVERATEC 3200",
+ .matches = {
+ DMI_MATCH(DMI_BOARD_VENDOR, "AVERATEC"),
+ DMI_MATCH(DMI_BOARD_NAME, "3200"),
+ },
+ },
+ { }
+};
+
struct via_port {
u8 cached_device;
};
@@ -355,6 +366,13 @@ static unsigned long via_mode_filter(struct ata_device *dev, unsigned long mask)
mask &= ~ ATA_MASK_UDMA;
}
}
+
+ if (dev->class == ATA_DEV_ATAPI &&
+ dmi_check_system(no_atapi_dma_dmi_table)) {
+ ata_dev_warn(dev, "controller locks up on ATAPI DMA, forcing PIO\n");
+ mask &= ATA_MASK_PIO;
+ }
+
return mask;
}
OpenPOWER on IntegriCloud