From: Ralf Baechle Fix the MIPS coherency configuration such that we always keep the mapping state in when we need to on non-coherent platforms. Signed-off-by: Ralf Baechle Signed-off-by: Andrew Morton --- arch/mips/Kconfig | 14 +++++++++++--- arch/mips/configs/atlas_defconfig | 1 + arch/mips/configs/capcella_defconfig | 1 + arch/mips/configs/cobalt_defconfig | 1 + arch/mips/configs/db1000_defconfig | 1 + arch/mips/configs/db1100_defconfig | 1 + arch/mips/configs/ddb5476_defconfig | 1 + arch/mips/configs/ddb5477_defconfig | 1 + arch/mips/configs/decstation_defconfig | 1 + arch/mips/configs/e55_defconfig | 1 + arch/mips/configs/ev64120_defconfig | 1 + arch/mips/configs/ev96100_defconfig | 1 + arch/mips/configs/ip22_defconfig | 1 + arch/mips/configs/ip32_defconfig | 1 + arch/mips/configs/it8172_defconfig | 1 + arch/mips/configs/ivr_defconfig | 1 + arch/mips/configs/jaguar-atx_defconfig | 1 + arch/mips/configs/jmr3927_defconfig | 1 + arch/mips/configs/lasat200_defconfig | 1 + arch/mips/configs/malta_defconfig | 1 + arch/mips/configs/mpc30x_defconfig | 1 + arch/mips/configs/ocelot_3_defconfig | 1 + arch/mips/configs/ocelot_c_defconfig | 1 + arch/mips/configs/ocelot_defconfig | 1 + arch/mips/configs/ocelot_g_defconfig | 1 + arch/mips/configs/pb1100_defconfig | 1 + arch/mips/configs/rm200_defconfig | 1 + arch/mips/configs/sead_defconfig | 1 + arch/mips/configs/tb0226_defconfig | 1 + arch/mips/configs/tb0229_defconfig | 1 + arch/mips/configs/workpad_defconfig | 1 + arch/mips/defconfig | 1 + include/asm-mips/pci.h | 6 +++--- 33 files changed, 45 insertions(+), 6 deletions(-) diff -puN arch/mips/configs/atlas_defconfig~mips-fix-coherency-configuration arch/mips/configs/atlas_defconfig --- 25/arch/mips/configs/atlas_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/atlas_defconfig Wed Aug 17 16:19:05 2005 @@ -88,6 +88,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_MIPS_BONITO64=y CONFIG_MIPS_MSC=y # CONFIG_CPU_LITTLE_ENDIAN is not set diff -puN arch/mips/configs/capcella_defconfig~mips-fix-coherency-configuration arch/mips/configs/capcella_defconfig --- 25/arch/mips/configs/capcella_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/capcella_defconfig Wed Aug 17 16:19:05 2005 @@ -97,6 +97,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y CONFIG_MIPS_L1_CACHE_SHIFT=5 diff -puN arch/mips/configs/cobalt_defconfig~mips-fix-coherency-configuration arch/mips/configs/cobalt_defconfig --- 25/arch/mips/configs/cobalt_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/cobalt_defconfig Wed Aug 17 16:19:05 2005 @@ -82,6 +82,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_I8259=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y diff -puN arch/mips/configs/db1000_defconfig~mips-fix-coherency-configuration arch/mips/configs/db1000_defconfig --- 25/arch/mips/configs/db1000_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/db1000_defconfig Wed Aug 17 16:19:05 2005 @@ -104,6 +104,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_MIPS_L1_CACHE_SHIFT=5 diff -puN arch/mips/configs/db1100_defconfig~mips-fix-coherency-configuration arch/mips/configs/db1100_defconfig --- 25/arch/mips/configs/db1100_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/db1100_defconfig Wed Aug 17 16:19:05 2005 @@ -104,6 +104,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_MIPS_L1_CACHE_SHIFT=5 diff -puN arch/mips/configs/ddb5476_defconfig~mips-fix-coherency-configuration arch/mips/configs/ddb5476_defconfig --- 25/arch/mips/configs/ddb5476_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/ddb5476_defconfig Wed Aug 17 16:19:05 2005 @@ -82,6 +82,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_I8259=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y diff -puN arch/mips/configs/ddb5477_defconfig~mips-fix-coherency-configuration arch/mips/configs/ddb5477_defconfig --- 25/arch/mips/configs/ddb5477_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/ddb5477_defconfig Wed Aug 17 16:19:05 2005 @@ -83,6 +83,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_I8259=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y diff -puN arch/mips/configs/decstation_defconfig~mips-fix-coherency-configuration arch/mips/configs/decstation_defconfig --- 25/arch/mips/configs/decstation_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/decstation_defconfig Wed Aug 17 16:19:05 2005 @@ -88,6 +88,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_EARLY_PRINTK=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y diff -puN arch/mips/configs/e55_defconfig~mips-fix-coherency-configuration arch/mips/configs/e55_defconfig --- 25/arch/mips/configs/e55_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/e55_defconfig Wed Aug 17 16:19:05 2005 @@ -96,6 +96,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y CONFIG_MIPS_L1_CACHE_SHIFT=5 diff -puN arch/mips/configs/ev64120_defconfig~mips-fix-coherency-configuration arch/mips/configs/ev64120_defconfig --- 25/arch/mips/configs/ev64120_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/ev64120_defconfig Wed Aug 17 16:19:05 2005 @@ -89,6 +89,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_MIPS_GT64120=y # CONFIG_SYSCLK_75 is not set diff -puN arch/mips/configs/ev96100_defconfig~mips-fix-coherency-configuration arch/mips/configs/ev96100_defconfig --- 25/arch/mips/configs/ev96100_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/ev96100_defconfig Wed Aug 17 16:19:05 2005 @@ -88,6 +88,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_IRQ_CPU=y CONFIG_MIPS_GT64120=y diff -puN arch/mips/configs/ip22_defconfig~mips-fix-coherency-configuration arch/mips/configs/ip22_defconfig --- 25/arch/mips/configs/ip22_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/ip22_defconfig Wed Aug 17 16:19:05 2005 @@ -90,6 +90,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_ARC=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_IRQ_CPU=y CONFIG_SWAP_IO_SPACE=y diff -puN arch/mips/configs/ip32_defconfig~mips-fix-coherency-configuration arch/mips/configs/ip32_defconfig --- 25/arch/mips/configs/ip32_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/ip32_defconfig Wed Aug 17 16:19:05 2005 @@ -84,6 +84,7 @@ CONFIG_ARC=y CONFIG_DMA_IP32=y CONFIG_OWN_DMA=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_ARC32=y CONFIG_BOOT_ELF32=y diff -puN arch/mips/configs/it8172_defconfig~mips-fix-coherency-configuration arch/mips/configs/it8172_defconfig --- 25/arch/mips/configs/it8172_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/it8172_defconfig Wed Aug 17 16:19:05 2005 @@ -90,6 +90,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_ITE_BOARD_GEN=y CONFIG_IT8172_CIR=y diff -puN arch/mips/configs/ivr_defconfig~mips-fix-coherency-configuration arch/mips/configs/ivr_defconfig --- 25/arch/mips/configs/ivr_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/ivr_defconfig Wed Aug 17 16:19:05 2005 @@ -89,6 +89,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_ITE_BOARD_GEN=y CONFIG_IT8172_CIR=y diff -puN arch/mips/configs/jaguar-atx_defconfig~mips-fix-coherency-configuration arch/mips/configs/jaguar-atx_defconfig --- 25/arch/mips/configs/jaguar-atx_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/jaguar-atx_defconfig Wed Aug 17 16:19:05 2005 @@ -81,6 +81,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_LIMITED_DMA=y # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_IRQ_CPU=y diff -puN arch/mips/configs/jmr3927_defconfig~mips-fix-coherency-configuration arch/mips/configs/jmr3927_defconfig --- 25/arch/mips/configs/jmr3927_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/jmr3927_defconfig Wed Aug 17 16:19:05 2005 @@ -82,6 +82,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_MIPS_TX3927=y CONFIG_SWAP_IO_SPACE=y diff -puN arch/mips/configs/lasat200_defconfig~mips-fix-coherency-configuration arch/mips/configs/lasat200_defconfig --- 25/arch/mips/configs/lasat200_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/lasat200_defconfig Wed Aug 17 16:19:05 2005 @@ -92,6 +92,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_MIPS_NILE4=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_MIPS_GT64120=y diff -puN arch/mips/configs/malta_defconfig~mips-fix-coherency-configuration arch/mips/configs/malta_defconfig --- 25/arch/mips/configs/malta_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/malta_defconfig Wed Aug 17 16:19:05 2005 @@ -88,6 +88,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_GENERIC_ISA_DMA=y CONFIG_I8259=y CONFIG_MIPS_BONITO64=y diff -puN arch/mips/configs/mpc30x_defconfig~mips-fix-coherency-configuration arch/mips/configs/mpc30x_defconfig --- 25/arch/mips/configs/mpc30x_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/mpc30x_defconfig Wed Aug 17 16:19:05 2005 @@ -97,6 +97,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y CONFIG_MIPS_L1_CACHE_SHIFT=5 diff -puN arch/mips/configs/ocelot_3_defconfig~mips-fix-coherency-configuration arch/mips/configs/ocelot_3_defconfig --- 25/arch/mips/configs/ocelot_3_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/ocelot_3_defconfig Wed Aug 17 16:19:05 2005 @@ -89,6 +89,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_IRQ_CPU=y CONFIG_IRQ_CPU_RM7K=y diff -puN arch/mips/configs/ocelot_c_defconfig~mips-fix-coherency-configuration arch/mips/configs/ocelot_c_defconfig --- 25/arch/mips/configs/ocelot_c_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/ocelot_c_defconfig Wed Aug 17 16:19:05 2005 @@ -80,6 +80,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_IRQ_CPU=y CONFIG_IRQ_MV64340=y diff -puN arch/mips/configs/ocelot_defconfig~mips-fix-coherency-configuration arch/mips/configs/ocelot_defconfig --- 25/arch/mips/configs/ocelot_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/ocelot_defconfig Wed Aug 17 16:19:05 2005 @@ -82,6 +82,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_IRQ_CPU=y CONFIG_IRQ_CPU_RM7K=y diff -puN arch/mips/configs/ocelot_g_defconfig~mips-fix-coherency-configuration arch/mips/configs/ocelot_g_defconfig --- 25/arch/mips/configs/ocelot_g_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/ocelot_g_defconfig Wed Aug 17 16:19:05 2005 @@ -80,6 +80,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_IRQ_CPU=y CONFIG_IRQ_CPU_RM7K=y diff -puN arch/mips/configs/pb1100_defconfig~mips-fix-coherency-configuration arch/mips/configs/pb1100_defconfig --- 25/arch/mips/configs/pb1100_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/pb1100_defconfig Wed Aug 17 16:19:05 2005 @@ -104,6 +104,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_SWAP_IO_SPACE=y # CONFIG_AU1X00_USB_DEVICE is not set diff -puN arch/mips/configs/rm200_defconfig~mips-fix-coherency-configuration arch/mips/configs/rm200_defconfig --- 25/arch/mips/configs/rm200_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/rm200_defconfig Wed Aug 17 16:19:05 2005 @@ -91,6 +91,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_ARC=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_GENERIC_ISA_DMA=y CONFIG_I8259=y CONFIG_CPU_LITTLE_ENDIAN=y diff -puN arch/mips/configs/sead_defconfig~mips-fix-coherency-configuration arch/mips/configs/sead_defconfig --- 25/arch/mips/configs/sead_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/sead_defconfig Wed Aug 17 16:19:05 2005 @@ -80,6 +80,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y CONFIG_MIPS_BOARDS_GEN=y diff -puN arch/mips/configs/tb0226_defconfig~mips-fix-coherency-configuration arch/mips/configs/tb0226_defconfig --- 25/arch/mips/configs/tb0226_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/tb0226_defconfig Wed Aug 17 16:19:05 2005 @@ -95,6 +95,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y CONFIG_MIPS_L1_CACHE_SHIFT=5 diff -puN arch/mips/configs/tb0229_defconfig~mips-fix-coherency-configuration arch/mips/configs/tb0229_defconfig --- 25/arch/mips/configs/tb0229_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/tb0229_defconfig Wed Aug 17 16:19:05 2005 @@ -98,6 +98,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y CONFIG_MIPS_L1_CACHE_SHIFT=5 diff -puN arch/mips/configs/workpad_defconfig~mips-fix-coherency-configuration arch/mips/configs/workpad_defconfig --- 25/arch/mips/configs/workpad_defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/configs/workpad_defconfig Wed Aug 17 16:19:05 2005 @@ -96,6 +96,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y CONFIG_CPU_LITTLE_ENDIAN=y CONFIG_IRQ_CPU=y CONFIG_MIPS_L1_CACHE_SHIFT=5 diff -puN arch/mips/defconfig~mips-fix-coherency-configuration arch/mips/defconfig --- 25/arch/mips/defconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/defconfig Wed Aug 17 16:19:05 2005 @@ -90,6 +90,7 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_ARC=y CONFIG_DMA_NONCOHERENT=y +CONFIG_DMA_NEED_PCI_MAP_STATE=y # CONFIG_CPU_LITTLE_ENDIAN is not set CONFIG_IRQ_CPU=y CONFIG_SWAP_IO_SPACE=y diff -puN arch/mips/Kconfig~mips-fix-coherency-configuration arch/mips/Kconfig --- 25/arch/mips/Kconfig~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/arch/mips/Kconfig Wed Aug 17 16:19:05 2005 @@ -957,13 +957,21 @@ config ARC depends on SNI_RM200_PCI || SGI_IP32 || SGI_IP27 || SGI_IP22 || MIPS_MAGNUM_4000 || OLIVETTI_M700 || ACER_PICA_61 default y -config DMA_COHERENT +config DMA_COHERENT bool -config DMA_IP27 +config DMA_IP27 bool -config DMA_NONCOHERENT +config DMA_IP32 + bool + select DMA_NEED_PCI_MAP_STATE + +config DMA_NONCOHERENT + bool + select DMA_NEED_PCI_MAP_STATE + +config DMA_NEED_PCI_MAP_STATE bool config EARLY_PRINTK diff -puN include/asm-mips/pci.h~mips-fix-coherency-configuration include/asm-mips/pci.h --- 25/include/asm-mips/pci.h~mips-fix-coherency-configuration Wed Aug 17 16:19:05 2005 +++ 25-akpm/include/asm-mips/pci.h Wed Aug 17 16:19:05 2005 @@ -94,7 +94,7 @@ struct pci_dev; */ extern unsigned int PCI_DMA_BUS_IS_PHYS; -#ifdef CONFIG_MAPPED_DMA_IO +#ifdef CONFIG_DMA_NEED_PCI_MAP_STATE /* pci_unmap_{single,page} is not a nop, thus... */ #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) dma_addr_t ADDR_NAME; @@ -104,7 +104,7 @@ extern unsigned int PCI_DMA_BUS_IS_PHYS; #define pci_unmap_len(PTR, LEN_NAME) ((PTR)->LEN_NAME) #define pci_unmap_len_set(PTR, LEN_NAME, VAL) (((PTR)->LEN_NAME) = (VAL)) -#else /* CONFIG_MAPPED_DMA_IO */ +#else /* CONFIG_DMA_NEED_PCI_MAP_STATE */ /* pci_unmap_{page,single} is a nop so... */ #define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) @@ -114,7 +114,7 @@ extern unsigned int PCI_DMA_BUS_IS_PHYS; #define pci_unmap_len(PTR, LEN_NAME) (0) #define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0) -#endif /* CONFIG_MAPPED_DMA_IO */ +#endif /* CONFIG_DMA_NEED_PCI_MAP_STATE */ /* This is always fine. */ #define pci_dac_dma_supported(pci_dev, mask) (1) _