From: Tejun Heo <htejun@gmail.com>
To: jeff@garzik.org, hancockr@shaw.ca, linux-ide@vger.kernel.org
Cc: Tejun Heo <htejun@gmail.com>
Subject: [PATCH 5/9] libata: use init_gtm in ata_acpi_cbl_80wire()
Date: Fri, 14 Dec 2007 15:15:37 +0900 [thread overview]
Message-ID: <11976129423891-git-send-email-htejun@gmail.com> (raw)
In-Reply-To: <11976129411285-git-send-email-htejun@gmail.com>
ata_acpi_cbl_80wire() is called from cable detection where transfer
spped is forced to PIO0 after resetting. On some controllers, this
results in incorrect result or ACPI evaluation failure. Use cached
initial _GTM value.
This is partial fix for 2.6.24. More extensive update to ACPI mode
filtering is queued for 2.6.25.
Signed-off-by: Tejun Heo <htejun@gmail.com>
---
drivers/ata/libata-acpi.c | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/ata/libata-acpi.c b/drivers/ata/libata-acpi.c
index e4ec391..5785cac 100644
--- a/drivers/ata/libata-acpi.c
+++ b/drivers/ata/libata-acpi.c
@@ -396,22 +396,22 @@ static int ata_dev_get_GTF(struct ata_device *dev, struct ata_acpi_gtf **gtf,
int ata_acpi_cbl_80wire(struct ata_port *ap)
{
- struct ata_acpi_gtm gtm;
+ const struct ata_acpi_gtm *gtm;
int valid = 0;
- /* No _GTM data, no information */
- if (ata_acpi_gtm(ap, >m) < 0)
+ gtm = ata_acpi_init_gtm(ap);
+ if (!gtm)
return 0;
/* Split timing, DMA enabled */
- if ((gtm.flags & 0x11) == 0x11 && gtm.drive[0].dma < 55)
+ if ((gtm->flags & 0x11) == 0x11 && gtm->drive[0].dma < 55)
valid |= 1;
- if ((gtm.flags & 0x14) == 0x14 && gtm.drive[1].dma < 55)
+ if ((gtm->flags & 0x14) == 0x14 && gtm->drive[1].dma < 55)
valid |= 2;
/* Shared timing, DMA enabled */
- if ((gtm.flags & 0x11) == 0x01 && gtm.drive[0].dma < 55)
+ if ((gtm->flags & 0x11) == 0x01 && gtm->drive[0].dma < 55)
valid |= 1;
- if ((gtm.flags & 0x14) == 0x04 && gtm.drive[0].dma < 55)
+ if ((gtm->flags & 0x14) == 0x04 && gtm->drive[0].dma < 55)
valid |= 2;
/* Drive check */
--
1.5.2.4
next prev parent reply other threads:[~2007-12-14 6:15 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-12-14 6:15 [PATCHSET #upstram-fixes] libata-acpi: improve ACPI corner case handling Tejun Heo
2007-12-14 6:15 ` [PATCH 1/9] libata: drop const from struct ata_port param on ata_acpi_gtm/stm() Tejun Heo
2007-12-14 6:15 ` [PATCH 2/9] libata: update ata_*_printk() macros such that level can be a variable Tejun Heo
2007-12-14 6:15 ` [PATCH 3/9] libata: add more opcodes to ata.h Tejun Heo
2007-12-14 6:15 ` [PATCH 4/9] libata: implement ata_acpi_init_gtm() Tejun Heo
2007-12-14 6:15 ` Tejun Heo [this message]
2007-12-14 6:15 ` [PATCH 6/9] libata-acpi: improve ACPI disabling Tejun Heo
2007-12-14 6:15 ` [PATCH 7/9] libata-acpi: improve _GTF execution error handling and reporting Tejun Heo
2007-12-14 14:12 ` Mark Lord
2007-12-14 14:15 ` Tejun Heo
2007-12-14 14:45 ` Mark Lord
2007-12-14 14:50 ` Tejun Heo
2007-12-14 14:54 ` Mark Lord
2007-12-14 6:15 ` [PATCH 8/9] libata-acpi: ignore _GTM failure during suspend Tejun Heo
2007-12-14 6:15 ` [PATCH 9/9] libata-acpi: implement _GTF command filtering and filter out LOCK commands Tejun Heo
2007-12-14 7:56 ` [PATCHSET #upstram-fixes] libata-acpi: improve ACPI corner case handling Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=11976129423891-git-send-email-htejun@gmail.com \
--to=htejun@gmail.com \
--cc=hancockr@shaw.ca \
--cc=jeff@garzik.org \
--cc=linux-ide@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.