diff -Naur linux-2.4.27.orrig/arch/i386/config.in linux-2.4.27/arch/i386/config.in
--- linux-2.4.27.orrig/arch/i386/config.in	2004-02-18 13:36:30.000000000 +0000
+++ linux-2.4.27/arch/i386/config.in	2004-08-16 21:31:26.000000000 +0000
@@ -42,6 +42,7 @@
 	 Winchip-C6				CONFIG_MWINCHIPC6 \
 	 Winchip-2				CONFIG_MWINCHIP2 \
 	 Winchip-2A/Winchip-3			CONFIG_MWINCHIP3D \
+	 MediaGX/Geode                          CONFIG_MGEODE \
 	 CyrixIII/VIA-C3			CONFIG_MCYRIXIII \
 	 VIA-C3-2				CONFIG_MVIAC3_2" Pentium-Pro
 #
@@ -163,6 +164,14 @@
    define_bool CONFIG_X86_USE_PPRO_CHECKSUM y
    define_bool CONFIG_X86_F00F_WORKS_OK y
 fi
+if [ "$CONFIG_MGEODE" = "y" ]; then
+   define_int  CONFIG_X86_L1_CACHE_SHIFT 5
+   define_bool CONFIG_X86_USE_STRING_486 y
+   define_bool CONFIG_X86_ALIGNMENT_16 y
+   define_bool CONFIG_X86_TSC y
+   define_bool CONFIG_X86_PPRO_FENCE y
+   define_bool CONFIG_X86_OOSTORE y
+fi
 if [ "$CONFIG_MCRUSOE" = "y" ]; then
    define_int  CONFIG_X86_L1_CACHE_SHIFT 5
    define_bool CONFIG_X86_HAS_TSC y
diff -Naur linux-2.4.27.orrig/drivers/pci/pci.c linux-2.4.27/drivers/pci/pci.c
--- linux-2.4.27.orrig/drivers/pci/pci.c	2004-08-07 23:26:05.000000000 +0000
+++ linux-2.4.27/drivers/pci/pci.c	2004-08-16 21:31:28.000000000 +0000
@@ -1477,6 +1477,10 @@
 	for (func = 0; func < 8; func++, temp->devfn++) {
 		if (pci_read_config_byte(temp, PCI_HEADER_TYPE, &hdr_type))
 			continue;
+/* #ifdef CONFIG_GEODE */
+		if (hdr_type & 0x7f > PCI_HEADER_TYPE_CARDBUS)
+			continue;
+/* #endif */
 		temp->hdr_type = hdr_type & 0x7f;
 
 		dev = pci_scan_device(temp);
