129 lines
3.9 KiB
Diff
Executable File
129 lines
3.9 KiB
Diff
Executable File
Index: linux-2.6.25-source/arch/x86/Kconfig
|
|
===================================================================
|
|
--- linux-2.6.25-source.orig/arch/x86/Kconfig
|
|
+++ linux-2.6.25-source/arch/x86/Kconfig
|
|
@@ -1433,6 +1433,9 @@
|
|
direct access method and falls back to the BIOS if that doesn't
|
|
work. If unsure, go with the default, which is "Any".
|
|
|
|
+config PCI_GOCO
|
|
+ bool "Cooperative"
|
|
+
|
|
config PCI_GOBIOS
|
|
bool "BIOS"
|
|
|
|
@@ -1447,6 +1450,11 @@
|
|
|
|
endchoice
|
|
|
|
+config PCI_COOPERATIVE
|
|
+ bool
|
|
+ depends on PCI && PCI_GOCO && COOPERATIVE
|
|
+ default y
|
|
+
|
|
config PCI_BIOS
|
|
def_bool y
|
|
depends on X86_32 && !X86_VISWS && PCI && (PCI_GOBIOS || PCI_GOANY)
|
|
@@ -1504,6 +1512,7 @@
|
|
|
|
# x86_64 have no ISA slots, but do have ISA-style DMA.
|
|
config ISA_DMA_API
|
|
+ depends on !COOPERATIVE
|
|
def_bool y
|
|
|
|
if X86_32
|
|
Index: linux-2.6.25-source/arch/x86/kernel/cpu/cyrix.c
|
|
===================================================================
|
|
--- linux-2.6.25-source.orig/arch/x86/kernel/cpu/cyrix.c
|
|
+++ linux-2.6.25-source/arch/x86/kernel/cpu/cyrix.c
|
|
@@ -248,6 +248,7 @@
|
|
|
|
case 4: /* MediaGX/GXm or Geode GXM/GXLV/GX1 */
|
|
#ifdef CONFIG_PCI
|
|
+#ifndef CONFIG_COOPERATIVE
|
|
{
|
|
u32 vendor, device;
|
|
/* It isn't really a PCI quirk directly, but the cure is the
|
|
@@ -279,6 +280,7 @@
|
|
mark_tsc_unstable("cyrix 5510/5520 detected");
|
|
}
|
|
#endif
|
|
+#endif
|
|
c->x86_cache_size=16; /* Yep 16K integrated cache thats it */
|
|
|
|
/* GXm supports extended cpuid levels 'ala' AMD */
|
|
Index: linux-2.6.25-source/arch/x86/pci/init.c
|
|
===================================================================
|
|
--- linux-2.6.25-source.orig/arch/x86/pci/init.c
|
|
+++ linux-2.6.25-source/arch/x86/pci/init.c
|
|
@@ -8,6 +8,9 @@
|
|
{
|
|
int type __maybe_unused = 0;
|
|
|
|
+#ifdef CONFIG_PCI_COOPERATIVE
|
|
+ pci_cooperative_init();
|
|
+#endif
|
|
#ifdef CONFIG_PCI_DIRECT
|
|
type = pci_direct_probe();
|
|
#endif
|
|
Index: linux-2.6.25-source/arch/x86/pci/pci.h
|
|
===================================================================
|
|
--- linux-2.6.25-source.orig/arch/x86/pci/pci.h
|
|
+++ linux-2.6.25-source/arch/x86/pci/pci.h
|
|
@@ -104,6 +104,7 @@
|
|
extern void pci_pcbios_init(void);
|
|
extern void pci_mmcfg_init(int type);
|
|
extern void pcibios_sort(void);
|
|
+extern void pci_cooperative_init(void);
|
|
|
|
/* pci-mmconfig.c */
|
|
|
|
Index: linux-2.6.25-source/arch/x86/pci/Makefile_32
|
|
===================================================================
|
|
--- linux-2.6.25-source.orig/arch/x86/pci/Makefile_32
|
|
+++ linux-2.6.25-source/arch/x86/pci/Makefile_32
|
|
@@ -1,5 +1,6 @@
|
|
obj-y := i386.o init.o
|
|
|
|
+obj-$(CONFIG_PCI_COOPERATIVE) += copci.o
|
|
obj-$(CONFIG_PCI_BIOS) += pcbios.o
|
|
obj-$(CONFIG_PCI_MMCONFIG) += mmconfig_32.o direct.o mmconfig-shared.o
|
|
obj-$(CONFIG_PCI_DIRECT) += direct.o
|
|
@@ -11,4 +12,8 @@
|
|
pci-$(CONFIG_X86_VISWS) := visws.o fixup.o
|
|
pci-$(CONFIG_X86_NUMAQ) := numa.o irq.o
|
|
|
|
-obj-y += $(pci-y) common.o early.o
|
|
+pci-$(CONFIG_COOPERATIVE) := legacy.o irq_cooperative.o
|
|
+obj-y += $(pci-y) common.o
|
|
+ifndef CONFIG_COOPERATIVE
|
|
+obj-y += early.o
|
|
+endif
|
|
Index: linux-2.6.25-source/drivers/pci/pci.c
|
|
===================================================================
|
|
--- linux-2.6.25-source.orig/drivers/pci/pci.c
|
|
+++ linux-2.6.25-source/drivers/pci/pci.c
|
|
@@ -1690,7 +1690,9 @@
|
|
EXPORT_SYMBOL_GPL(pci_intx);
|
|
EXPORT_SYMBOL(pci_set_dma_mask);
|
|
EXPORT_SYMBOL(pci_set_consistent_dma_mask);
|
|
+#ifndef CONFIG_COOPERATIVE
|
|
EXPORT_SYMBOL(pci_assign_resource);
|
|
+#endif
|
|
EXPORT_SYMBOL(pci_find_parent_resource);
|
|
EXPORT_SYMBOL(pci_select_bars);
|
|
|
|
Index: linux-2.6.25-source/include/asm-x86/pci.h
|
|
===================================================================
|
|
--- linux-2.6.25-source.orig/include/asm-x86/pci.h
|
|
+++ linux-2.6.25-source/include/asm-x86/pci.h
|
|
@@ -65,7 +65,7 @@
|
|
enum pci_mmap_state mmap_state, int write_combine);
|
|
|
|
|
|
-#ifdef CONFIG_PCI
|
|
+#if defined(CONFIG_PCI) && !defined(CONFIG_COOPERATIVE)
|
|
extern void early_quirks(void);
|
|
static inline void pci_dma_burst_advice(struct pci_dev *pdev,
|
|
enum pci_dma_burst_strategy *strat,
|