diff options
| author | Borislav Petkov <borislav.petkov@amd.com> | 2009-11-11 14:42:46 -0500 |
|---|---|---|
| committer | Borislav Petkov <borislav.petkov@amd.com> | 2009-12-07 13:14:31 -0500 |
| commit | 986a42a25059143d153e30a0cc36630bd0e623c6 (patch) | |
| tree | d0bbd9701ff5e88afaedefae2e9986d2694ef940 | |
| parent | 6b4c0bdeb00f35cad2d3e0dc0d97bb4950a8f86e (diff) | |
amd64_edac: remove early hw support check
The .probe_valid_hardware low_ops member checked whether the DCTs are in
DDR3 mode and bailed out if so. Now that all the needed changes for DDR3
support is in place, remove it.
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
| -rw-r--r-- | drivers/edac/amd64_edac.c | 47 | ||||
| -rw-r--r-- | drivers/edac/amd64_edac.h | 1 |
2 files changed, 1 insertions, 47 deletions
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index d9cde7132e89..351334ead69d 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c | |||
| @@ -1739,42 +1739,6 @@ static void amd64_debug_display_dimm_sizes(int ctrl, struct amd64_pvt *pvt) | |||
| 1739 | } | 1739 | } |
| 1740 | 1740 | ||
| 1741 | /* | 1741 | /* |
| 1742 | * Very early hardware probe on pci_probe thread to determine if this module | ||
| 1743 | * supports the hardware. | ||
| 1744 | * | ||
| 1745 | * Return: | ||
| 1746 | * 0 for OK | ||
| 1747 | * 1 for error | ||
| 1748 | */ | ||
| 1749 | static int f10_probe_valid_hardware(struct amd64_pvt *pvt) | ||
| 1750 | { | ||
| 1751 | int ret = 0; | ||
| 1752 | |||
| 1753 | /* | ||
| 1754 | * If we are on a DDR3 machine, we don't know yet if | ||
| 1755 | * we support that properly at this time | ||
| 1756 | */ | ||
| 1757 | if ((pvt->dchr0 & DDR3_MODE) || | ||
| 1758 | (pvt->dchr1 & DDR3_MODE)) { | ||
| 1759 | |||
| 1760 | amd64_printk(KERN_WARNING, | ||
| 1761 | "%s() This machine is running with DDR3 memory. " | ||
| 1762 | "This is not currently supported. " | ||
| 1763 | "DCHR0=0x%x DCHR1=0x%x\n", | ||
| 1764 | __func__, pvt->dchr0, pvt->dchr1); | ||
| 1765 | |||
| 1766 | amd64_printk(KERN_WARNING, | ||
| 1767 | " Contact '%s' module MAINTAINER to help add" | ||
| 1768 | " support.\n", | ||
| 1769 | EDAC_MOD_STR); | ||
| 1770 | |||
| 1771 | ret = 1; | ||
| 1772 | |||
| 1773 | } | ||
| 1774 | return ret; | ||
| 1775 | } | ||
| 1776 | |||
| 1777 | /* | ||
| 1778 | * There currently are 3 types type of MC devices for AMD Athlon/Opterons | 1742 | * There currently are 3 types type of MC devices for AMD Athlon/Opterons |
| 1779 | * (as per PCI DEVICE_IDs): | 1743 | * (as per PCI DEVICE_IDs): |
| 1780 | * | 1744 | * |
| @@ -1803,7 +1767,6 @@ static struct amd64_family_type amd64_family_types[] = { | |||
| 1803 | .addr_f1_ctl = PCI_DEVICE_ID_AMD_10H_NB_MAP, | 1767 | .addr_f1_ctl = PCI_DEVICE_ID_AMD_10H_NB_MAP, |
| 1804 | .misc_f3_ctl = PCI_DEVICE_ID_AMD_10H_NB_MISC, | 1768 | .misc_f3_ctl = PCI_DEVICE_ID_AMD_10H_NB_MISC, |
| 1805 | .ops = { | 1769 | .ops = { |
| 1806 | .probe_valid_hardware = f10_probe_valid_hardware, | ||
| 1807 | .early_channel_count = f10_early_channel_count, | 1770 | .early_channel_count = f10_early_channel_count, |
| 1808 | .get_error_address = f10_get_error_address, | 1771 | .get_error_address = f10_get_error_address, |
| 1809 | .read_dram_base_limit = f10_read_dram_base_limit, | 1772 | .read_dram_base_limit = f10_read_dram_base_limit, |
| @@ -1817,7 +1780,6 @@ static struct amd64_family_type amd64_family_types[] = { | |||
| 1817 | .addr_f1_ctl = PCI_DEVICE_ID_AMD_11H_NB_MAP, | 1780 | .addr_f1_ctl = PCI_DEVICE_ID_AMD_11H_NB_MAP, |
| 1818 | .misc_f3_ctl = PCI_DEVICE_ID_AMD_11H_NB_MISC, | 1781 | .misc_f3_ctl = PCI_DEVICE_ID_AMD_11H_NB_MISC, |
| 1819 | .ops = { | 1782 | .ops = { |
| 1820 | .probe_valid_hardware = f10_probe_valid_hardware, | ||
| 1821 | .early_channel_count = f10_early_channel_count, | 1783 | .early_channel_count = f10_early_channel_count, |
| 1822 | .get_error_address = f10_get_error_address, | 1784 | .get_error_address = f10_get_error_address, |
| 1823 | .read_dram_base_limit = f10_read_dram_base_limit, | 1785 | .read_dram_base_limit = f10_read_dram_base_limit, |
| @@ -2851,17 +2813,10 @@ static int amd64_init_2nd_stage(struct amd64_pvt *pvt) | |||
| 2851 | { | 2813 | { |
| 2852 | int node_id = pvt->mc_node_id; | 2814 | int node_id = pvt->mc_node_id; |
| 2853 | struct mem_ctl_info *mci; | 2815 | struct mem_ctl_info *mci; |
| 2854 | int ret, err = 0; | 2816 | int ret; |
| 2855 | 2817 | ||
| 2856 | amd64_read_mc_registers(pvt); | 2818 | amd64_read_mc_registers(pvt); |
| 2857 | 2819 | ||
| 2858 | ret = -ENODEV; | ||
| 2859 | if (pvt->ops->probe_valid_hardware) { | ||
| 2860 | err = pvt->ops->probe_valid_hardware(pvt); | ||
| 2861 | if (err) | ||
| 2862 | goto err_exit; | ||
| 2863 | } | ||
| 2864 | |||
| 2865 | /* | 2820 | /* |
| 2866 | * We need to determine how many memory channels there are. Then use | 2821 | * We need to determine how many memory channels there are. Then use |
| 2867 | * that information for calculating the size of the dynamic instance | 2822 | * that information for calculating the size of the dynamic instance |
diff --git a/drivers/edac/amd64_edac.h b/drivers/edac/amd64_edac.h index f8c187ea6e38..e84f164034dd 100644 --- a/drivers/edac/amd64_edac.h +++ b/drivers/edac/amd64_edac.h | |||
| @@ -526,7 +526,6 @@ extern struct mcidev_sysfs_attribute amd64_dbg_attrs[NUM_DBG_ATTRS], | |||
| 526 | * functions and per device encoding/decoding logic. | 526 | * functions and per device encoding/decoding logic. |
| 527 | */ | 527 | */ |
| 528 | struct low_ops { | 528 | struct low_ops { |
| 529 | int (*probe_valid_hardware) (struct amd64_pvt *pvt); | ||
| 530 | int (*early_channel_count) (struct amd64_pvt *pvt); | 529 | int (*early_channel_count) (struct amd64_pvt *pvt); |
| 531 | 530 | ||
| 532 | u64 (*get_error_address) (struct mem_ctl_info *mci, | 531 | u64 (*get_error_address) (struct mem_ctl_info *mci, |
