[flashrom] [PATCH] Combine enable_flash_ich_4e() and enable_flash_ich_dc().

Stefan Tauner stefan.tauner at student.tuwien.ac.at
Sun Sep 15 03:26:36 CEST 2013


Putting parameters into function names is not where they belong.

Signed-off-by: Stefan Tauner <stefan.tauner at student.tuwien.ac.at>
---
 chipset_enable.c | 76 ++++++++++++++++++++++++--------------------------------
 programmer.h     |  3 ++-
 2 files changed, 34 insertions(+), 45 deletions(-)

diff --git a/chipset_enable.c b/chipset_enable.c
index c85db73..00070bd 100644
--- a/chipset_enable.c
+++ b/chipset_enable.c
@@ -314,15 +314,6 @@ static int enable_flash_ich(struct pci_dev *dev, const char *name, uint8_t bios_
 	return 0;
 }
 
-static int enable_flash_ich0(struct pci_dev *dev, const char *name)
-{
-	internal_buses_supported = BUS_FWH;
-	/* FIXME: Make this use enable_flash_ich_4e() too and add IDSEL support. Unlike later chipsets,
-	 * ICH and ICH-0 do only support mapping of the top-most 4MB and therefore do only feature
-	 * FWH_DEC_EN (E3h, different default too) and FWH_SEL (E8h). */
-	return enable_flash_ich(dev, name, 0x4e);
-}
-
 static int enable_flash_ich_fwh_decode(struct pci_dev *dev, const char *name, enum ich_chipset ich_generation)
 {
 	uint32_t fwh_conf;
@@ -342,6 +333,10 @@ static int enable_flash_ich_fwh_decode(struct pci_dev *dev, const char *name, en
 		fwh_sel2 = 0xee;
 		fwh_dec_en_lo = 0xf0;
 		fwh_dec_en_hi = 0xe3;
+	} else if (ich_generation == CHIPSET_ICH) {
+		/* FIXME: Unlike later chipsets, ICH and ICH-0 do only support mapping of the top-most 4MB
+		 * and therefore do only feature FWH_DEC_EN (E3h, different default too) and FWH_SEL (E8h). */
+		return 0;
 	} else {
 		msg_perr("Error: FWH decode setting not implemented.\n");
 		return ERROR_FATAL;
@@ -448,7 +443,8 @@ idsel_garbage_out:
 	return 0;
 }
 
-static int enable_flash_ich_4e(struct pci_dev *dev, const char *name, enum ich_chipset ich_generation)
+static int enable_flash_ich_fwh(struct pci_dev *dev, const char *name, enum ich_chipset ich_generation,
+				uint8_t bios_cntl)
 {
 	int err;
 
@@ -456,48 +452,41 @@ static int enable_flash_ich_4e(struct pci_dev *dev, const char *name, enum ich_c
 	if ((err = enable_flash_ich_fwh_decode(dev, name, ich_generation)) != 0)
 		return err;
 
+	/* If we're called by enable_flash_ich_spi, it will override
+	 * internal_buses_supported anyway.
+	 */
 	internal_buses_supported = BUS_FWH;
-	return enable_flash_ich(dev, name, 0x4e);
+	return enable_flash_ich(dev, name, bios_cntl);
+}
+
+static int enable_flash_ich0(struct pci_dev *dev, const char *name)
+{
+	return enable_flash_ich_fwh(dev, name, CHIPSET_ICH, 0x4e);
 }
 
 static int enable_flash_ich2(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_4e(dev, name, CHIPSET_ICH2);
+	return enable_flash_ich_fwh(dev, name, CHIPSET_ICH2, 0x4e);
 }
 
 static int enable_flash_ich3(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_4e(dev, name, CHIPSET_ICH3);
+	return enable_flash_ich_fwh(dev, name, CHIPSET_ICH3, 0x4e);
 }
 
 static int enable_flash_ich4(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_4e(dev, name, CHIPSET_ICH4);
+	return enable_flash_ich_fwh(dev, name, CHIPSET_ICH4, 0x4e);
 }
 
 static int enable_flash_ich5(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_4e(dev, name, CHIPSET_ICH5);
-}
-
-static int enable_flash_ich_dc(struct pci_dev *dev, const char *name, enum ich_chipset ich_generation)
-{
-	int err;
-
-	/* Configure FWH IDSEL decoder maps. */
-	if ((err = enable_flash_ich_fwh_decode(dev, name, ich_generation)) != 0)
-		return err;
-
-	/* If we're called by enable_flash_ich_dc_spi, it will override
-	 * internal_buses_supported anyway.
-	 */
-	internal_buses_supported = BUS_FWH;
-	return enable_flash_ich(dev, name, 0xdc);
+	return enable_flash_ich_fwh(dev, name, CHIPSET_ICH5, 0x4e);
 }
 
 static int enable_flash_ich6(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_dc(dev, name, CHIPSET_ICH6);
+	return enable_flash_ich_fwh(dev, name, CHIPSET_ICH6, 0xdc);
 }
 
 static int enable_flash_poulsbo(struct pci_dev *dev, const char *name)
@@ -565,8 +554,7 @@ static int enable_flash_tunnelcreek(struct pci_dev *dev, const char *name)
 	return ret;
 }
 
-static int enable_flash_ich_dc_spi(struct pci_dev *dev, const char *name,
-				   enum ich_chipset ich_generation)
+static int enable_flash_ich_spi(struct pci_dev *dev, const char *name, enum ich_chipset ich_generation)
 {
 	int ret, ret_spi;
 	uint8_t bbs, buc;
@@ -619,7 +607,7 @@ static int enable_flash_ich_dc_spi(struct pci_dev *dev, const char *name,
 	}
 
 	/* Enable Flash Writes */
-	ret = enable_flash_ich_dc(dev, name, ich_generation);
+	ret = enable_flash_ich_fwh(dev, name, ich_generation, 0xdc);
 	if (ret == ERROR_FATAL)
 		return ret;
 
@@ -683,58 +671,58 @@ static int enable_flash_ich_dc_spi(struct pci_dev *dev, const char *name,
 
 static int enable_flash_ich7(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_dc_spi(dev, name, CHIPSET_ICH7);
+	return enable_flash_ich_spi(dev, name, CHIPSET_ICH7);
 }
 
 static int enable_flash_ich8(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_dc_spi(dev, name, CHIPSET_ICH8);
+	return enable_flash_ich_spi(dev, name, CHIPSET_ICH8);
 }
 
 static int enable_flash_ich9(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_dc_spi(dev, name, CHIPSET_ICH9);
+	return enable_flash_ich_spi(dev, name, CHIPSET_ICH9);
 }
 
 static int enable_flash_ich10(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_dc_spi(dev, name, CHIPSET_ICH10);
+	return enable_flash_ich_spi(dev, name, CHIPSET_ICH10);
 }
 
 /* Ibex Peak aka. 5 series & 3400 series */
 static int enable_flash_pch5(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_dc_spi(dev, name, CHIPSET_5_SERIES_IBEX_PEAK);
+	return enable_flash_ich_spi(dev, name, CHIPSET_5_SERIES_IBEX_PEAK);
 }
 
 /* Cougar Point aka. 6 series & c200 series */
 static int enable_flash_pch6(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_dc_spi(dev, name, CHIPSET_6_SERIES_COUGAR_POINT);
+	return enable_flash_ich_spi(dev, name, CHIPSET_6_SERIES_COUGAR_POINT);
 }
 
 /* Panther Point aka. 7 series */
 static int enable_flash_pch7(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_dc_spi(dev, name, CHIPSET_7_SERIES_PANTHER_POINT);
+	return enable_flash_ich_spi(dev, name, CHIPSET_7_SERIES_PANTHER_POINT);
 }
 
 /* Lynx Point aka. 8 series */
 static int enable_flash_pch8(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_dc_spi(dev, name, CHIPSET_8_SERIES_LYNX_POINT);
+	return enable_flash_ich_spi(dev, name, CHIPSET_8_SERIES_LYNX_POINT);
 }
 
 /* Lynx Point aka. 8 series low-power */
 static int enable_flash_pch8_lp(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_dc_spi(dev, name, CHIPSET_8_SERIES_LYNX_POINT_LP);
+	return enable_flash_ich_spi(dev, name, CHIPSET_8_SERIES_LYNX_POINT_LP);
 }
 
 /* Wellsburg (for Haswell-EP Xeons) */
 static int enable_flash_pch8_wb(struct pci_dev *dev, const char *name)
 {
-	return enable_flash_ich_dc_spi(dev, name, CHIPSET_8_SERIES_WELLSBURG);
+	return enable_flash_ich_spi(dev, name, CHIPSET_8_SERIES_WELLSBURG);
 }
 
 static int via_no_byte_merge(struct pci_dev *dev, const char *name)
diff --git a/programmer.h b/programmer.h
index ef96c9e..187390d 100644
--- a/programmer.h
+++ b/programmer.h
@@ -557,7 +557,8 @@ int register_spi_programmer(const struct spi_programmer *programmer);
 /* The following enum is needed by ich_descriptor_tool and ich* code as well as in chipset_enable.c. */
 enum ich_chipset {
 	CHIPSET_ICH_UNKNOWN,
-	CHIPSET_ICH2 = 2,
+	CHIPSET_ICH = 1,
+	CHIPSET_ICH2,
 	CHIPSET_ICH3,
 	CHIPSET_ICH4,
 	CHIPSET_ICH5,
-- 
Kind regards, Stefan Tauner





More information about the flashrom mailing list