diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-12 16:40:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-12 16:40:57 -0400 |
commit | 21ba0f88ae56da82a3a15fe54d729208b64c4f4b (patch) | |
tree | 17ce67f276fe3ea7284c3dc730bdd6a2ec7dfe2f /drivers/ata/sata_mv.c | |
parent | dc690d8ef842b464f1c429a376ca16cb8dbee6ae (diff) | |
parent | 36e235901f90fb83215be43cbd8f1ca14661ea40 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (34 commits)
PCI: Only build PCI syscalls on architectures that want them
PCI: limit pci_get_bus_and_slot to domain 0
PCI: hotplug: acpiphp: avoid acpiphp "cannot get bridge info" PCI hotplug failure
PCI: hotplug: acpiphp: remove hot plug parameter write to PCI host bridge
PCI: hotplug: acpiphp: fix slot poweroff problem on systems without _PS3
PCI: hotplug: pciehp: wait for 1 second after power off slot
PCI: pci_set_power_state(): check for PM capabilities earlier
PCI: cpci_hotplug: Convert to use the kthread API
PCI: add pci_try_set_mwi
PCI: pcie: remove SPIN_LOCK_UNLOCKED
PCI: ROUND_UP macro cleanup in drivers/pci
PCI: remove pci_dac_dma_... APIs
PCI: pci-x-pci-express-read-control-interfaces cleanups
PCI: Fix typo in include/linux/pci.h
PCI: pci_ids, remove double or more empty lines
PCI: pci_ids, add atheros and 3com_2 vendors
PCI: pci_ids, reorder some entries
PCI: i386: traps, change VENDOR to DEVICE
PCI: ATM: lanai, change VENDOR to DEVICE
PCI: Change all drivers to use pci_device->revision
...
Diffstat (limited to 'drivers/ata/sata_mv.c')
-rw-r--r-- | drivers/ata/sata_mv.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c index 8a77a0ae83ad..5d576435fccc 100644 --- a/drivers/ata/sata_mv.c +++ b/drivers/ata/sata_mv.c | |||
@@ -1765,12 +1765,9 @@ static void mv5_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val) | |||
1765 | 1765 | ||
1766 | static void mv5_reset_bus(struct pci_dev *pdev, void __iomem *mmio) | 1766 | static void mv5_reset_bus(struct pci_dev *pdev, void __iomem *mmio) |
1767 | { | 1767 | { |
1768 | u8 rev_id; | ||
1769 | int early_5080; | 1768 | int early_5080; |
1770 | 1769 | ||
1771 | pci_read_config_byte(pdev, PCI_REVISION_ID, &rev_id); | 1770 | early_5080 = (pdev->device == 0x5080) && (pdev->revision == 0); |
1772 | |||
1773 | early_5080 = (pdev->device == 0x5080) && (rev_id == 0); | ||
1774 | 1771 | ||
1775 | if (!early_5080) { | 1772 | if (!early_5080) { |
1776 | u32 tmp = readl(mmio + MV_PCI_EXP_ROM_BAR_CTL); | 1773 | u32 tmp = readl(mmio + MV_PCI_EXP_ROM_BAR_CTL); |
@@ -2387,17 +2384,14 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx) | |||
2387 | { | 2384 | { |
2388 | struct pci_dev *pdev = to_pci_dev(host->dev); | 2385 | struct pci_dev *pdev = to_pci_dev(host->dev); |
2389 | struct mv_host_priv *hpriv = host->private_data; | 2386 | struct mv_host_priv *hpriv = host->private_data; |
2390 | u8 rev_id; | ||
2391 | u32 hp_flags = hpriv->hp_flags; | 2387 | u32 hp_flags = hpriv->hp_flags; |
2392 | 2388 | ||
2393 | pci_read_config_byte(pdev, PCI_REVISION_ID, &rev_id); | ||
2394 | |||
2395 | switch(board_idx) { | 2389 | switch(board_idx) { |
2396 | case chip_5080: | 2390 | case chip_5080: |
2397 | hpriv->ops = &mv5xxx_ops; | 2391 | hpriv->ops = &mv5xxx_ops; |
2398 | hp_flags |= MV_HP_GEN_I; | 2392 | hp_flags |= MV_HP_GEN_I; |
2399 | 2393 | ||
2400 | switch (rev_id) { | 2394 | switch (pdev->revision) { |
2401 | case 0x1: | 2395 | case 0x1: |
2402 | hp_flags |= MV_HP_ERRATA_50XXB0; | 2396 | hp_flags |= MV_HP_ERRATA_50XXB0; |
2403 | break; | 2397 | break; |
@@ -2417,7 +2411,7 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx) | |||
2417 | hpriv->ops = &mv5xxx_ops; | 2411 | hpriv->ops = &mv5xxx_ops; |
2418 | hp_flags |= MV_HP_GEN_I; | 2412 | hp_flags |= MV_HP_GEN_I; |
2419 | 2413 | ||
2420 | switch (rev_id) { | 2414 | switch (pdev->revision) { |
2421 | case 0x0: | 2415 | case 0x0: |
2422 | hp_flags |= MV_HP_ERRATA_50XXB0; | 2416 | hp_flags |= MV_HP_ERRATA_50XXB0; |
2423 | break; | 2417 | break; |
@@ -2437,7 +2431,7 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx) | |||
2437 | hpriv->ops = &mv6xxx_ops; | 2431 | hpriv->ops = &mv6xxx_ops; |
2438 | hp_flags |= MV_HP_GEN_II; | 2432 | hp_flags |= MV_HP_GEN_II; |
2439 | 2433 | ||
2440 | switch (rev_id) { | 2434 | switch (pdev->revision) { |
2441 | case 0x7: | 2435 | case 0x7: |
2442 | hp_flags |= MV_HP_ERRATA_60X1B2; | 2436 | hp_flags |= MV_HP_ERRATA_60X1B2; |
2443 | break; | 2437 | break; |
@@ -2457,7 +2451,7 @@ static int mv_chip_id(struct ata_host *host, unsigned int board_idx) | |||
2457 | hpriv->ops = &mv6xxx_ops; | 2451 | hpriv->ops = &mv6xxx_ops; |
2458 | hp_flags |= MV_HP_GEN_IIE; | 2452 | hp_flags |= MV_HP_GEN_IIE; |
2459 | 2453 | ||
2460 | switch (rev_id) { | 2454 | switch (pdev->revision) { |
2461 | case 0x0: | 2455 | case 0x0: |
2462 | hp_flags |= MV_HP_ERRATA_XX42A0; | 2456 | hp_flags |= MV_HP_ERRATA_XX42A0; |
2463 | break; | 2457 | break; |
@@ -2585,14 +2579,12 @@ static void mv_print_info(struct ata_host *host) | |||
2585 | { | 2579 | { |
2586 | struct pci_dev *pdev = to_pci_dev(host->dev); | 2580 | struct pci_dev *pdev = to_pci_dev(host->dev); |
2587 | struct mv_host_priv *hpriv = host->private_data; | 2581 | struct mv_host_priv *hpriv = host->private_data; |
2588 | u8 rev_id, scc; | 2582 | u8 scc; |
2589 | const char *scc_s, *gen; | 2583 | const char *scc_s, *gen; |
2590 | 2584 | ||
2591 | /* Use this to determine the HW stepping of the chip so we know | 2585 | /* Use this to determine the HW stepping of the chip so we know |
2592 | * what errata to workaround | 2586 | * what errata to workaround |
2593 | */ | 2587 | */ |
2594 | pci_read_config_byte(pdev, PCI_REVISION_ID, &rev_id); | ||
2595 | |||
2596 | pci_read_config_byte(pdev, PCI_CLASS_DEVICE, &scc); | 2588 | pci_read_config_byte(pdev, PCI_CLASS_DEVICE, &scc); |
2597 | if (scc == 0) | 2589 | if (scc == 0) |
2598 | scc_s = "SCSI"; | 2590 | scc_s = "SCSI"; |