# This is a BitKeeper generated patch for the following project: # Project Name: Linux 2.4 # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.139 -> 1.140 # arch/ppc/config.in 1.36 -> 1.37 # arch/ppc/kernel/mpc10x_common.c 1.1 -> 1.2 # arch/ppc/kernel/mpc10x.h 1.1 -> 1.2 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 01/06/07 trini@opus.bloom.county 1.140 # Enable MPC10x store gathering. # -------------------------------------------- # diff -Nru a/arch/ppc/config.in b/arch/ppc/config.in --- a/arch/ppc/config.in Thu Jun 7 12:28:34 2001 +++ b/arch/ppc/config.in Thu Jun 7 12:28:34 2001 @@ -47,6 +47,8 @@ choice 'Machine Type' \ "EST8260 CONFIG_EST8260 \ SBS8260 CONFIG_SBS8260" EST8260 + + define_bool CONFIG_ALL_PPC n fi if [ "$CONFIG_4xx" = "y" ]; then @@ -100,6 +102,17 @@ Zynx-ZX4500 CONFIG_ZX4500" CHRP/PowerMac/PReP fi +if [ "$CONFIG_PCORE" = "y" \ + -o "$CONFIG_MENF1" = "y" \ + -o "$CONFIG_SANDPOINT" = "y" \ + -o "$CONFIG_ZX4500" = "y" ]; then + bool 'Enable MPC10x store gathering' CONFIG_MPC10X_STORE_GATHERING +fi + +if [ "$CONFIG_K2" = "y" ]; then + bool 'Enable CPC710 data gathering' CONFIG_CPC710_DATA_GATHERING +fi + if [ "$CONFIG_PRPMC750" = "y" ]; then choice 'Carrier Type' \ "PrPMCBASE CONFIG_PRPMC_BASE \ @@ -119,7 +132,8 @@ bool 'Workarounds for PPC601 bugs' CONFIG_PPC601_SYNC_FIX fi -if [ "$CONFIG_8xx" = "y" -o "$CONFIG_8260" = "y" ]; then +if [ "$CONFIG_POWER3" = "n" -a "$CONFIG_POWER4" = "n" -a \ + "$CONFIG_6xx" = "n" ]; then define_bool CONFIG_ALL_PPC n fi diff -Nru a/arch/ppc/kernel/mpc10x.h b/arch/ppc/kernel/mpc10x.h --- a/arch/ppc/kernel/mpc10x.h Thu Jun 7 12:28:34 2001 +++ b/arch/ppc/kernel/mpc10x.h Thu Jun 7 12:28:34 2001 @@ -105,6 +105,7 @@ #define MPC10X_CFG_PICR1_ADDR_MAP_MASK 0x00010000 #define MPC10X_CFG_PICR1_ADDR_MAP_A 0x00010000 #define MPC10X_CFG_PICR1_ADDR_MAP_B 0x00000000 +#define MPC10X_CFG_PICR1_ST_GATH_EN 0x00000040 #define MPC10X_CFG_MAPB_OPTIONS_REG 0xe0 #define MPC10X_CFG_MAPB_OPTIONS_CFAE 0x80 /* CPU_FD_ALIAS_EN */ @@ -154,5 +155,6 @@ uint new_map, uint phys_eumb_base); unsigned long mpc10x_get_mem_size(uint mem_map); +int mpc10x_enable_store_gathering(struct pci_controller *hose); #endif /* __PPC_KERNEL_MPC10X_H */ diff -Nru a/arch/ppc/kernel/mpc10x_common.c b/arch/ppc/kernel/mpc10x_common.c --- a/arch/ppc/kernel/mpc10x_common.c Thu Jun 7 12:28:34 2001 +++ b/arch/ppc/kernel/mpc10x_common.c Thu Jun 7 12:28:34 2001 @@ -199,6 +199,10 @@ MPC10X_EUMB_EPIC_SIZE); } +#ifdef CONFIG_MPC10X_STORE_GATHERING + mpc10x_enable_store_gathering(hose); +#endif + if (ppc_md.progress) ppc_md.progress("mpc10x:exit", 0x100); return 0; } @@ -307,4 +311,26 @@ } return total; +} + +int __init +mpc10x_enable_store_gathering(struct pci_controller *hose) +{ + uint picr1; + + early_read_config_dword(hose, + 0, + PCI_DEVFN(0,0), + MPC10X_CFG_PICR1_REG, + &picr1); + + picr1 |= MPC10X_CFG_PICR1_ST_GATH_EN; + + early_write_config_dword(hose, + 0, + PCI_DEVFN(0,0), + MPC10X_CFG_PICR1_REG, + picr1); + + return 0; }