From 1d491cbd636b251316ed7a354fa42e5895592000 Mon Sep 17 00:00:00 2001 From: Alan Cox Date: Tue, 12 Sep 2006 17:14:03 +0100 Subject: [PATCH] --- yaml --- r: 35419 b: refs/heads/master c: 76ff3c6e3b389a5a7692811dd456e0ff58340cac h: refs/heads/master i: 35417: 3b991462688e691113b652e61318917db3f7458f 35415: ffd03aa7af1a5287c5564215f6d91b10d600c1c5 v: v3 --- [refs] | 2 +- trunk/drivers/ata/pata_amd.c | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index cdc63503bcd0..0bb424cf87d7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: af323a2fb508b0fa1c1fa91cbc6ec86fb0879c07 +refs/heads/master: 76ff3c6e3b389a5a7692811dd456e0ff58340cac diff --git a/trunk/drivers/ata/pata_amd.c b/trunk/drivers/ata/pata_amd.c index b3f60fdb02d0..3293cf9a7eb5 100644 --- a/trunk/drivers/ata/pata_amd.c +++ b/trunk/drivers/ata/pata_amd.c @@ -25,7 +25,7 @@ #include #define DRV_NAME "pata_amd" -#define DRV_VERSION "0.2.2" +#define DRV_VERSION "0.2.3" /** * timing_setup - shared timing computation and load @@ -253,11 +253,22 @@ static void amd133_set_dmamode(struct ata_port *ap, struct ata_device *adev) static int nv_pre_reset(struct ata_port *ap) { static const u8 bitmask[2] = {0x03, 0xC0}; + static const struct pci_bits nv_enable_bits[] = { + { 0x50, 1, 0x02, 0x02 }, + { 0x50, 1, 0x01, 0x01 } + }; struct pci_dev *pdev = to_pci_dev(ap->host->dev); u8 ata66; u16 udma; + if (!pci_test_config_bits(pdev, &nv_enable_bits[ap->port_no])) { + ata_port_disable(ap); + printk(KERN_INFO "ata%u: port disabled. ignoring.\n", ap->id); + return 0; + } + + pci_read_config_byte(pdev, 0x52, &ata66); if (ata66 & bitmask[ap->port_no]) ap->cbl = ATA_CBL_PATA80;