Revert "DO NOT SUBMIT: Use new tuning for Amlogic"

This reverts commit 754cdfe118ce7891ee7f2f8204805f22511bf1bd.
diff --git a/src/devices/block/drivers/aml-sdmmc/aml-sdmmc.cc b/src/devices/block/drivers/aml-sdmmc/aml-sdmmc.cc
index 5a953f2..9ac521c 100644
--- a/src/devices/block/drivers/aml-sdmmc/aml-sdmmc.cc
+++ b/src/devices/block/drivers/aml-sdmmc/aml-sdmmc.cc
@@ -1095,46 +1095,6 @@
   return best_window;
 }
 
-AmlSdmmc::TuneWindow AmlSdmmc::FindLargestDelayWindow(cpp20::span<const uint8_t> tuning_blk,
-                                                      uint32_t tuning_cmd_idx) {
-  TuneWindow largest_window, current_window;
-
-  char tuning_results[std::max(AmlSdmmcClock::kMaxClkDiv, AmlSdmmcClock::kMaxDelay) + 2];
-
-  for (uint32_t delay = 0; delay <= max_delay(); delay++) {
-    SetDelayLines(delay);
-
-    if (TuningTestSettings(tuning_blk, tuning_cmd_idx)) {
-      tuning_results[delay] = '|';
-
-      if (current_window.size > largest_window.size) {
-        largest_window = current_window;
-      }
-
-      current_window = {delay + 1, 0};
-    } else {
-      tuning_results[delay] = '-';
-
-      current_window.size++;
-    }
-  }
-
-  tuning_results[max_delay() + 1] = '\0';
-
-  // largest_window was never assigned if no tuning transfers succeeded.
-  if (current_window.start == 0) {
-    largest_window = {0, max_delay() + 1};
-  }
-
-  AML_SDMMC_INFO("Tuning results: %s", tuning_results);
-
-  // We're only interested in the delay line results, but that is the last step so this string will
-  // end up correct.
-  // inspect_.tuning_results.Set(tuning_results);
-
-  return largest_window;
-}
-
 void AmlSdmmc::SetAdjDelay(uint32_t adj_delay) {
   
   if (board_config_.version_3) {
@@ -1202,39 +1162,44 @@
 
   auto clk = AmlSdmmcClock::Get().ReadFrom(&mmio_);
 
-  uint32_t largest_adj_delay = 0;
-  TuneWindow largest_window;
+  auto set_adj_delay = [&](uint32_t param) -> void { SetAdjDelay(param); };
+  auto set_delay_lines = [&](uint32_t param) -> void { SetDelayLines(param); };
+
+  clk.set_cfg_tx_phase(AmlSdmmcClock::kClkPhase0Degrees).WriteTo(&mmio_);
+
   for (uint32_t i = 0; i < clk.cfg_div(); i++) {
-    SetAdjDelay(i);
-    TuneWindow window = FindLargestDelayWindow(tuning_blk, tuning_cmd_idx);
-    if (window.size > largest_window.size) {
-      largest_adj_delay = i;
-      largest_window = window;
-    }
+    set_adj_delay(i);
+    TuneDelayParam(tuning_blk, tuning_cmd_idx, max_delay(), set_delay_lines);
   }
 
-  if (largest_window.size == 0) {
-    AML_SDMMC_ERROR("No tuning transfers failed");
+  set_delay_lines(0);
+
+  TuneWindow adj_delay_window =
+      TuneDelayParam(tuning_blk, tuning_cmd_idx, clk.cfg_div() - 1, set_adj_delay);
+
+  if (adj_delay_window.size == 0) {
+    AML_SDMMC_ERROR("No window found for any phase");
     return ZX_ERR_IO;
   }
 
-  AML_SDMMC_INFO("Largest failing window: adj_delay %u, delay start %u, size %u, middle %u",
-                 largest_adj_delay, largest_window.start, largest_window.size,
-                 largest_window.middle());
+  const uint32_t best_adj_delay =
+      adj_delay_window.size == clk.cfg_div() ? 0 : adj_delay_window.middle() % clk.cfg_div();
 
-  uint32_t delay = largest_window.start;
-  if (clk.cfg_div() % 2 == 0) {
-    // Even dividers: adj_delay will be exactly 180 degrees phase shifted from the chosen point, so
-    // set the delay lines to the middle of the largest failing window.
-    delay = largest_window.middle();
+  set_adj_delay(best_adj_delay);
+
+  TuneWindow delay_window =
+      TuneDelayParam(tuning_blk, tuning_cmd_idx, max_delay(), set_delay_lines);
+
+  if (delay_window.size == 0) {
+    AML_SDMMC_ERROR("No delay window found");
+    return ZX_ERR_IO;
   }
 
-  const uint32_t best_adj_delay = (largest_adj_delay + (clk.cfg_div() / 2)) % clk.cfg_div();
+  const uint32_t best_delay = delay_window.middle() % (max_delay() + 1);
+  set_delay_lines(best_delay);
 
-  SetAdjDelay(best_adj_delay);
-
-  AML_SDMMC_INFO("Clock divider %u, adj delay %u, delay %u", clk.cfg_div(), best_adj_delay,
-                 delay);
+  AML_SDMMC_INFO("Clock divider %u, clock phase %u, adj delay %u, delay %u", clk.cfg_div(),
+                 AmlSdmmcClock::kClkPhase0Degrees, best_adj_delay, best_delay);
 
   return ZX_OK;
 }
diff --git a/src/devices/block/drivers/aml-sdmmc/aml-sdmmc.h b/src/devices/block/drivers/aml-sdmmc/aml-sdmmc.h
index f9cbe97..e9c34c2 100644
--- a/src/devices/block/drivers/aml-sdmmc/aml-sdmmc.h
+++ b/src/devices/block/drivers/aml-sdmmc/aml-sdmmc.h
@@ -100,7 +100,6 @@
   template <typename SetParamCallback>
   TuneWindow TuneDelayParam(fbl::Span<const uint8_t> tuning_blk, uint32_t tuning_cmd_idx,
                             uint32_t param_max, SetParamCallback& set_param);
-  TuneWindow FindLargestDelayWindow(cpp20::span<const uint8_t> tuning_blk, uint32_t tuning_cmd_idx);
 
   void SetAdjDelay(uint32_t adj_delay);
   void SetDelayLines(uint32_t delay);