From 939e5bf9b3e04389b0262bc5634599dd0ab9c8e2 Mon Sep 17 00:00:00 2001
From: York Sun <yorksun@freescale.com>
Date: Mon, 27 Jun 2011 13:30:55 -0700
Subject: [PATCH] powerpc/mpc85xx: Display a warning for unsupported DDR data
 rates

If DDR initialziation uses a speed table and the speed is not matched,
print a warning message instead of silently ignoring.

Signed-off-by: York Sun <yorksun@freescale.com>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 board/freescale/corenet_ds/ddr.c  | 6 ++++++
 board/freescale/mpc8572ds/ddr.c   | 8 ++++----
 board/freescale/mpc8641hpcn/ddr.c | 5 +++++
 board/freescale/p2020ds/ddr.c     | 6 ++++++
 board/xes/xpedite550x/ddr.c       | 6 ++++++
 5 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/board/freescale/corenet_ds/ddr.c b/board/freescale/corenet_ds/ddr.c
index f2b716d4ae..a184592e57 100644
--- a/board/freescale/corenet_ds/ddr.c
+++ b/board/freescale/corenet_ds/ddr.c
@@ -192,10 +192,16 @@ void fsl_ddr_board_options(memctl_options_t *popts,
 			popts->clk_adjust = pbsp->clk_adjust;
 			popts->wrlvl_start = pbsp->wrlvl_start;
 			popts->twoT_en = pbsp->force_2T;
+			break;
 		}
 		pbsp++;
 	}
 
+	if (i == num_params) {
+		printf("Warning: board specific timing not found "
+			"for data rate %lu MT/s!\n", ddr_freq);
+	}
+
 	/*
 	 * Factors to consider for half-strength driver enable:
 	 *	- number of DIMMs installed
diff --git a/board/freescale/mpc8572ds/ddr.c b/board/freescale/mpc8572ds/ddr.c
index ab471afb97..adcbd58545 100644
--- a/board/freescale/mpc8572ds/ddr.c
+++ b/board/freescale/mpc8572ds/ddr.c
@@ -104,7 +104,6 @@ void fsl_ddr_board_options(memctl_options_t *popts,
 	u32 num_params;
 	u32 i;
 	ulong ddr_freq;
-	int matched = 0;
 
 	if (!pdimm->n_ranks)
 		return;
@@ -151,14 +150,15 @@ void fsl_ddr_board_options(memctl_options_t *popts,
 			popts->cpo_override = pbsp->cpo;
 			popts->write_data_delay = pbsp->write_data_delay;
 			popts->twoT_en = pbsp->force_2T;
-			matched = 1;
 			break;
 		}
 		pbsp++;
 	}
 
-	if (!matched)
-		printf("Warning: board specific timing not found!\n");
+	if (i == num_params) {
+		printf("Warning: board specific timing not found "
+			"for data rate %lu MT/s!\n", ddr_freq);
+	}
 
 	/*
 	 * Factors to consider for half-strength driver enable:
diff --git a/board/freescale/mpc8641hpcn/ddr.c b/board/freescale/mpc8641hpcn/ddr.c
index bd0b299d0b..4f2e853cd1 100644
--- a/board/freescale/mpc8641hpcn/ddr.c
+++ b/board/freescale/mpc8641hpcn/ddr.c
@@ -127,6 +127,11 @@ void fsl_ddr_board_options(memctl_options_t *popts,
 		}
 	}
 
+	if (i == num_params) {
+		printf("Warning: board specific timing not found "
+			"for data rate %lu MT/s!\n", ddr_freq);
+	}
+
 	/* 2T timing enable */
 	popts->twoT_en = 1;
 }
diff --git a/board/freescale/p2020ds/ddr.c b/board/freescale/p2020ds/ddr.c
index 9bf7d2f587..926fd19271 100644
--- a/board/freescale/p2020ds/ddr.c
+++ b/board/freescale/p2020ds/ddr.c
@@ -83,10 +83,16 @@ void fsl_ddr_board_options(memctl_options_t *popts,
 			popts->cpo_override = pbsp->cpo;
 			popts->write_data_delay = pbsp->write_data_delay;
 			popts->twoT_en = pbsp->force_2T;
+			break;
 		}
 		pbsp++;
 	}
 
+	if (i == num_params) {
+		printf("Warning: board specific timing not found "
+			"for data rate %lu MT/s!\n", ddr_freq);
+	}
+
 	/*
 	 * Factors to consider for half-strength driver enable:
 	 *	- number of DIMMs installed
diff --git a/board/xes/xpedite550x/ddr.c b/board/xes/xpedite550x/ddr.c
index 3b6e08bfcd..8031a34b6d 100644
--- a/board/xes/xpedite550x/ddr.c
+++ b/board/xes/xpedite550x/ddr.c
@@ -125,10 +125,16 @@ void fsl_ddr_board_options(memctl_options_t *popts,
 			popts->clk_adjust = pbsp->clk_adjust;
 			popts->cpo_override = pbsp->cpo;
 			popts->twoT_en = 0;
+			break;
 		}
 		pbsp++;
 	}
 
+	if (i == num_params) {
+		printf("Warning: board specific timing not found "
+		"for data rate %lu MT/s!\n", ddr_freq);
+	}
+
 	/*
 	 * Factors to consider for half-strength driver enable:
 	 *	- number of DIMMs installed
-- 
2.39.5