From 71a0edcdfcef668b85d7371f2f6598bf85fe6b48 Mon Sep 17 00:00:00 2001 From: Alan Date: Mon, 5 Feb 2007 16:28:30 +0000 Subject: [PATCH] --- yaml --- r: 47390 b: refs/heads/master c: 11750a40abddff1e0c6e0924902f914292d12277 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/ata/libata-core.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 495119424d40..af46bea5827a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ce053fa8b532aa038fba6230052daae5cd60eae6 +refs/heads/master: 11750a40abddff1e0c6e0924902f914292d12277 diff --git a/trunk/drivers/ata/libata-core.c b/trunk/drivers/ata/libata-core.c index 6a2083a6d175..479f95a5c0a3 100644 --- a/trunk/drivers/ata/libata-core.c +++ b/trunk/drivers/ata/libata-core.c @@ -2333,6 +2333,10 @@ static int ata_dev_set_mode(struct ata_device *dev) dev->flags |= ATA_DFLAG_PIO; err_mask = ata_dev_set_xfermode(dev); + /* Old CFA may refuse this command, which is just fine */ + if (dev->xfer_shift == ATA_SHIFT_PIO && ata_id_is_cfa(dev->id)) + err_mask &= ~AC_ERR_DEV; + if (err_mask) { ata_dev_printk(dev, KERN_ERR, "failed to set xfermode " "(err_mask=0x%x)\n", err_mask);