sdcard: Move frequency setting into sdcard_card_setup()

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
diff --git a/src/hw/sdcard.c b/src/hw/sdcard.c
index bf35277..a60fa92 100644
--- a/src/hw/sdcard.c
+++ b/src/hw/sdcard.c
@@ -355,9 +355,14 @@
 static int
 sdcard_card_setup(struct sdhci_s *regs, int volt)
 {
+    // Set controller to initialization clock rate
+    int ret = sdcard_set_frequency(regs, 400);
+    if (ret)
+        return ret;
+    msleep(SDHCI_CLOCK_ON_TIME);
     // Reset card
     u32 param[4] = { };
-    int ret = sdcard_pio(regs, SC_GO_IDLE_STATE, param);
+    ret = sdcard_pio(regs, SC_GO_IDLE_STATE, param);
     if (ret)
         return ret;
     // Let card know SDHC/SDXC is supported and confirm voltage
@@ -412,6 +417,10 @@
     ret = sdcard_pio(regs, SC_SELECT_DESELECT_CARD, param);
     if (ret)
         return ret;
+    // Set controller to data transfer clock rate
+    ret = sdcard_set_frequency(regs, 25000);
+    if (ret)
+        return ret;
     return card_type;
 }
 
@@ -438,18 +447,11 @@
     int volt = sdcard_set_power(regs);
     if (volt < 0)
         return;
-    int ret = sdcard_set_frequency(regs, 400);
-    if (ret)
-        goto fail;
-    msleep(SDHCI_CLOCK_ON_TIME);
 
     // Initialize card
     int card_type = sdcard_card_setup(regs, volt);
     if (card_type < 0)
         goto fail;
-    ret = sdcard_set_frequency(regs, 25000);
-    if (ret)
-        goto fail;
 
     // Register drive
     struct sddrive_s *drive = malloc_fseg(sizeof(*drive));