use fw_cfg DMA for fw_cfg_read

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
diff --git a/fw_cfg.c b/fw_cfg.c
index 329311a..33b4003 100644
--- a/fw_cfg.c
+++ b/fw_cfg.c
@@ -88,6 +88,15 @@
 	}
 }
 
+void fw_cfg_read(void *buf, int len)
+{
+	if (version & FW_CFG_VERSION_DMA) {
+		fw_cfg_dma(FW_CFG_DMA_CTL_READ, buf, len);
+	} else {
+		insb(buf, FW_CFG_DATA, len);
+	}
+}
+
 void
 fw_cfg_read_entry(int e, void *buf, int len)
 {
@@ -99,7 +108,7 @@
 		fw_cfg_dma(control, buf, len);
 	} else {
 		fw_cfg_select(e);
-		fw_cfg_read(buf, len);
+		insb(buf, FW_CFG_DATA, len);
 	}
 }
 
diff --git a/include/fw_cfg.h b/include/fw_cfg.h
index 52ed4e3..1ddfc1f 100644
--- a/include/fw_cfg.h
+++ b/include/fw_cfg.h
@@ -101,11 +101,6 @@
 	return val;
 }
 
-static inline void fw_cfg_read(void *buf, int len)
-{
-	insb(buf, FW_CFG_DATA, len);
-}
-
 static inline void fw_cfg_skip(int len)
 {
 	while (len--)