RE: Please pull from 'for_paulus' branch of powerpc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, Kumar,

Why moving these codes from pci.c to mpc86xx_hpcn.c? It's not must be.
These functions relate to PCI device of MPC8641D HPCn platform. 
And we can also see the 'DECLARE_PCI_FIXUP_HEADER()' declaration in pci.c of Powermac platform.

Best Regards,
Zhang Wei

> -----Original Message-----
> From: [email protected] 
> [mailto:[email protected]
> g] On Behalf Of Kumar Gala
> Sent: Wednesday, June 28, 2006 2:01 PM
> To: Paul Mackerras
> Cc: [email protected]; [email protected]
> Subject: Please pull from 'for_paulus' branch of powerpc
> 
> Please pull from 'for_paulus' branch of
> master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc.git
> 
> to receive the following updates:
> 
>  arch/powerpc/kernel/cputable.c             |   12 --
>  arch/powerpc/platforms/86xx/mpc86xx.h      |    8 +
>  arch/powerpc/platforms/86xx/mpc86xx_hpcn.c |  128 
> +++++++++++++++++++++++++--
>  arch/powerpc/platforms/86xx/mpc86xx_smp.c  |    9 -
>  arch/powerpc/platforms/86xx/pci.c          |  136 
> +----------------------------
>  include/asm-powerpc/mpc86xx.h              |    4 
>  6 files changed, 138 insertions(+), 159 deletions(-)
> 
> Kumar Gala:
>       powerpc: minor cleanups for mpc86xx
> 
> diff --git a/arch/powerpc/kernel/cputable.c 
> b/arch/powerpc/kernel/cputable.c index 1c11488..abf7d42 100644
> --- a/arch/powerpc/kernel/cputable.c
> +++ b/arch/powerpc/kernel/cputable.c
> @@ -722,18 +722,6 @@ #if CLASSIC_PPC
>  		.oprofile_type		= PPC_OPROFILE_G4,
>  		.platform		= "ppc7450",
>  	},
> -        {       /* 8641 */
> -               .pvr_mask               = 0xffffffff,
> -               .pvr_value              = 0x80040010,
> -               .cpu_name               = "8641",
> -               .cpu_features           = CPU_FTRS_7447A,
> -               .cpu_user_features      = COMMON_USER | 
> PPC_FEATURE_HAS_ALTIVEC_COMP,
> -               .icache_bsize           = 32,
> -               .dcache_bsize           = 32,
> -               .num_pmcs               = 6,
> -               .cpu_setup              = __setup_cpu_745x
> -        },
> -
>  	{	/* 82xx (8240, 8245, 8260 are all 603e cores) */
>  		.pvr_mask		= 0x7fff0000,
>  		.pvr_value		= 0x00810000,
> diff --git a/arch/powerpc/platforms/86xx/mpc86xx.h 
> b/arch/powerpc/platforms/86xx/mpc86xx.h
> index e3c9e4f..2834462 100644
> --- a/arch/powerpc/platforms/86xx/mpc86xx.h
> +++ b/arch/powerpc/platforms/86xx/mpc86xx.h
> @@ -15,11 +15,13 @@ #define __MPC86XX_H__
>   * mpc86xx_* files. Mostly for use by mpc86xx_setup().
>   */
>  
> -extern int __init add_bridge(struct device_node *dev);
> +extern int add_bridge(struct device_node *dev);
>  
> -extern void __init setup_indirect_pcie(struct pci_controller *hose,
> +extern int mpc86xx_exclude_device(u_char bus, u_char devfn);
> +
> +extern void setup_indirect_pcie(struct pci_controller *hose,
>  				       u32 cfg_addr, u32 
> cfg_data); -extern void __init 
> setup_indirect_pcie_nomap(struct pci_controller *hose,
> +extern void setup_indirect_pcie_nomap(struct pci_controller *hose,
>  					     void __iomem *cfg_addr,
>  					     void __iomem *cfg_data);
>  
> diff --git a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c 
> b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
> index 483c21d..ac7f418 100644
> --- a/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
> +++ b/arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
> @@ -36,6 +36,7 @@ #include <asm/mpic.h>
>  #include <sysdev/fsl_soc.h>
>  
>  #include "mpc86xx.h"
> +#include "mpc8641_hpcn.h"
>  
>  #ifndef CONFIG_PCI
>  unsigned long isa_io_base = 0;
> @@ -186,17 +187,130 @@ mpc86xx_map_irq(struct pci_dev *dev, uns
>  	return PCI_IRQ_TABLE_LOOKUP + I8259_OFFSET;  }
>  
> +static void __devinit quirk_ali1575(struct pci_dev *dev) {
> +	unsigned short temp;
> +
> +	/*
> +	 * ALI1575 interrupts route table setup:
> +	 *
> +	 * IRQ pin   IRQ#
> +	 * PIRQA ---- 3
> +	 * PIRQB ---- 4
> +	 * PIRQC ---- 5
> +	 * PIRQD ---- 6
> +	 * PIRQE ---- 9
> +	 * PIRQF ---- 10
> +	 * PIRQG ---- 11
> +	 * PIRQH ---- 12
> +	 *
> +	 * interrupts for PCI slot0 -- PIRQA / PIRQB / PIRQC / PIRQD
> +	 *                PCI slot1 -- PIRQB / PIRQC / PIRQD / PIRQA
> +	 */
> +	pci_write_config_dword(dev, 0x48, 0xb9317542);
> +
> +	/* USB 1.1 OHCI controller 1, interrupt: PIRQE */
> +	pci_write_config_byte(dev, 0x86, 0x0c);
> +
> +	/* USB 1.1 OHCI controller 2, interrupt: PIRQF */
> +	pci_write_config_byte(dev, 0x87, 0x0d);
> +
> +	/* USB 1.1 OHCI controller 3, interrupt: PIRQH */
> +	pci_write_config_byte(dev, 0x88, 0x0f);
> +
> +	/* USB 2.0 controller, interrupt: PIRQ7 */
> +	pci_write_config_byte(dev, 0x74, 0x06);
> +
> +	/* Audio controller, interrupt: PIRQE */
> +	pci_write_config_byte(dev, 0x8a, 0x0c);
> +
> +	/* Modem controller, interrupt: PIRQF */
> +	pci_write_config_byte(dev, 0x8b, 0x0d);
> +
> +	/* HD audio controller, interrupt: PIRQG */
> +	pci_write_config_byte(dev, 0x8c, 0x0e);
> +
> +	/* Serial ATA interrupt: PIRQD */
> +	pci_write_config_byte(dev, 0x8d, 0x0b);
> +
> +	/* SMB interrupt: PIRQH */
> +	pci_write_config_byte(dev, 0x8e, 0x0f);
> +
> +	/* PMU ACPI SCI interrupt: PIRQH */
> +	pci_write_config_byte(dev, 0x8f, 0x0f);
> +
> +	/* Primary PATA IDE IRQ: 14
> +	 * Secondary PATA IDE IRQ: 15
> +	 */
> +	pci_write_config_byte(dev, 0x44, 0x3d);
> +	pci_write_config_byte(dev, 0x75, 0x0f);
> +
> +	/* Set IRQ14 and IRQ15 to legacy IRQs */
> +	pci_read_config_word(dev, 0x46, &temp);
> +	temp |= 0xc000;
> +	pci_write_config_word(dev, 0x46, temp);
> +
> +	/* Set i8259 interrupt trigger
> +	 * IRQ 3:  Level
> +	 * IRQ 4:  Level
> +	 * IRQ 5:  Level
> +	 * IRQ 6:  Level
> +	 * IRQ 7:  Level
> +	 * IRQ 9:  Level
> +	 * IRQ 10: Level
> +	 * IRQ 11: Level
> +	 * IRQ 12: Level
> +	 * IRQ 14: Edge
> +	 * IRQ 15: Edge
> +	 */
> +	outb(0xfa, 0x4d0);
> +	outb(0x1e, 0x4d1);
> +}
>  
> -int
> -mpc86xx_exclude_device(u_char bus, u_char devfn)
> +static void __devinit quirk_uli5288(struct pci_dev *dev)
>  {
> -#if !defined(CONFIG_PCI)
> -	if (bus == 0 && PCI_SLOT(devfn) == 0)
> -		return PCIBIOS_DEVICE_NOT_FOUND;
> -#endif
> +	unsigned char c;
> +
> +	pci_read_config_byte(dev,0x83,&c);
> +	c |= 0x80;
> +	pci_write_config_byte(dev, 0x83, c);
> +
> +	pci_write_config_byte(dev, 0x09, 0x01);
> +	pci_write_config_byte(dev, 0x0a, 0x06);
> +
> +	pci_read_config_byte(dev,0x83,&c);
> +	c &= 0x7f;
> +	pci_write_config_byte(dev, 0x83, c);
>  
> -	return PCIBIOS_SUCCESSFUL;
> +	pci_read_config_byte(dev,0x84,&c);
> +	c |= 0x01;
> +	pci_write_config_byte(dev, 0x84, c);
>  }
> +
> +static void __devinit quirk_uli5229(struct pci_dev *dev) {
> +	unsigned short temp;
> +	pci_write_config_word(dev, 0x04, 0x0405);
> +	pci_read_config_word(dev, 0x4a, &temp);
> +	temp |= 0x1000;
> +	pci_write_config_word(dev, 0x4a, temp); }
> +
> +static void __devinit early_uli5249(struct pci_dev *dev) {
> +	unsigned char temp;
> +	pci_write_config_word(dev, 0x04, 0x0007);
> +	pci_read_config_byte(dev, 0x7c, &temp);
> +	pci_write_config_byte(dev, 0x7c, 0x80);
> +	pci_write_config_byte(dev, 0x09, 0x01);
> +	pci_write_config_byte(dev, 0x7c, temp);
> +	dev->class |= 0x1;
> +}
> +
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, quirk_ali1575); 
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5288, quirk_uli5288); 
> +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, quirk_uli5229); 
> +DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, 0x5249, early_uli5249);
>  #endif /* CONFIG_PCI */
>  
>  
> diff --git a/arch/powerpc/platforms/86xx/mpc86xx_smp.c 
> b/arch/powerpc/platforms/86xx/mpc86xx_smp.c
> index 944ec4b..9cca3d1 100644
> --- a/arch/powerpc/platforms/86xx/mpc86xx_smp.c
> +++ b/arch/powerpc/platforms/86xx/mpc86xx_smp.c
> @@ -34,8 +34,8 @@ extern unsigned long __secondary_hold_ac  
> static void __init  smp_86xx_release_core(int nr)  {
> -	void *mcm_vaddr;
> -	unsigned long vaddr, pcr;
> +	__be32 __iomem *mcm_vaddr;
> +	unsigned long pcr;
>  
>  	if (nr < 0 || nr >= NR_CPUS)
>  		return;
> @@ -45,10 +45,9 @@ smp_86xx_release_core(int nr)
>  	 */
>  	mcm_vaddr = ioremap(get_immrbase() + MPC86xx_MCM_OFFSET,
>  			    MPC86xx_MCM_SIZE);
> -	vaddr = (unsigned long)mcm_vaddr +  MCM_PORT_CONFIG_OFFSET;
> -	pcr = in_be32((volatile unsigned *)vaddr);
> +	pcr = in_be32(mcm_vaddr + (MCM_PORT_CONFIG_OFFSET >> 2));
>  	pcr |= 1 << (nr + 24);
> -	out_be32((volatile unsigned *)vaddr, pcr);
> +	out_be32(mcm_vaddr + (MCM_PORT_CONFIG_OFFSET >> 2), pcr);
>  }
>  
>  
> diff --git a/arch/powerpc/platforms/86xx/pci.c 
> b/arch/powerpc/platforms/86xx/pci.c
> index 5180df7..0d8b340 100644
> --- a/arch/powerpc/platforms/86xx/pci.c
> +++ b/arch/powerpc/platforms/86xx/pci.c
> @@ -122,15 +122,12 @@ static void __init 
> setup_pcie_atmu(struc  static void __init  
> mpc86xx_setup_pcie(struct pci_controller *hose, u32 
> pcie_offset, u32 pcie_size)  {
> -	volatile struct ccsr_pex *pcie;
>  	u16 cmd;
>  	unsigned int temps;
>  
>  	DBG("PCIE host controller register offset 0x%08x, size 
> 0x%08x.\n",
>  			pcie_offset, pcie_size);
>  
> -	pcie = ioremap(pcie_offset, pcie_size);
> -
>  	early_read_config_word(hose, 0, 0, PCI_COMMAND, &cmd);
>  	cmd |= PCI_COMMAND_SERR | PCI_COMMAND_MASTER | 
> PCI_COMMAND_MEMORY
>  	    | PCI_COMMAND_IO;
> @@ -144,6 +141,14 @@ mpc86xx_setup_pcie(struct pci_controller
>  	early_write_config_dword(hose, 0, 0, PCI_PRIMARY_BUS, temps);  }
>  
> +int mpc86xx_exclude_device(u_char bus, u_char devfn) {
> +	if (bus == 0 && PCI_SLOT(devfn) == 0)
> +		return PCIBIOS_DEVICE_NOT_FOUND;
> +
> +	return PCIBIOS_SUCCESSFUL;
> +}
> +
>  int __init add_bridge(struct device_node *dev)  {
>  	int len;
> @@ -198,128 +203,3 @@ int __init add_bridge(struct device_node
>  
>  	return 0;
>  }
> -
> -static void __devinit quirk_ali1575(struct pci_dev *dev) -{
> -	unsigned short temp;
> -
> -	/*
> -	 * ALI1575 interrupts route table setup:
> -	 *
> -	 * IRQ pin   IRQ#
> -	 * PIRQA ---- 3
> -	 * PIRQB ---- 4
> -	 * PIRQC ---- 5
> -	 * PIRQD ---- 6
> -	 * PIRQE ---- 9
> -	 * PIRQF ---- 10
> -	 * PIRQG ---- 11
> -	 * PIRQH ---- 12
> -	 *
> -	 * interrupts for PCI slot0 -- PIRQA / PIRQB / PIRQC / PIRQD
> -	 *                PCI slot1 -- PIRQB / PIRQC / PIRQD / PIRQA
> -	 */
> -	pci_write_config_dword(dev, 0x48, 0xb9317542);
> -
> -	/* USB 1.1 OHCI controller 1, interrupt: PIRQE */
> -	pci_write_config_byte(dev, 0x86, 0x0c);
> -
> -	/* USB 1.1 OHCI controller 2, interrupt: PIRQF */
> -	pci_write_config_byte(dev, 0x87, 0x0d);
> -
> -	/* USB 1.1 OHCI controller 3, interrupt: PIRQH */
> -	pci_write_config_byte(dev, 0x88, 0x0f);
> -
> -	/* USB 2.0 controller, interrupt: PIRQ7 */
> -	pci_write_config_byte(dev, 0x74, 0x06);
> -
> -	/* Audio controller, interrupt: PIRQE */
> -	pci_write_config_byte(dev, 0x8a, 0x0c);
> -
> -	/* Modem controller, interrupt: PIRQF */
> -	pci_write_config_byte(dev, 0x8b, 0x0d);
> -
> -	/* HD audio controller, interrupt: PIRQG */
> -	pci_write_config_byte(dev, 0x8c, 0x0e);
> -
> -	/* Serial ATA interrupt: PIRQD */
> -	pci_write_config_byte(dev, 0x8d, 0x0b);
> -
> -	/* SMB interrupt: PIRQH */
> -	pci_write_config_byte(dev, 0x8e, 0x0f);
> -
> -	/* PMU ACPI SCI interrupt: PIRQH */
> -	pci_write_config_byte(dev, 0x8f, 0x0f);
> -
> -	/* Primary PATA IDE IRQ: 14
> -	 * Secondary PATA IDE IRQ: 15
> -	 */
> -	pci_write_config_byte(dev, 0x44, 0x3d);
> -	pci_write_config_byte(dev, 0x75, 0x0f);
> -
> -	/* Set IRQ14 and IRQ15 to legacy IRQs */
> -	pci_read_config_word(dev, 0x46, &temp);
> -	temp |= 0xc000;
> -	pci_write_config_word(dev, 0x46, temp);
> -
> -	/* Set i8259 interrupt trigger
> -	 * IRQ 3:  Level
> -	 * IRQ 4:  Level
> -	 * IRQ 5:  Level
> -	 * IRQ 6:  Level
> -	 * IRQ 7:  Level
> -	 * IRQ 9:  Level
> -	 * IRQ 10: Level
> -	 * IRQ 11: Level
> -	 * IRQ 12: Level
> -	 * IRQ 14: Edge
> -	 * IRQ 15: Edge
> -	 */
> -	outb(0xfa, 0x4d0);
> -	outb(0x1e, 0x4d1);
> -}
> -
> -static void __devinit quirk_uli5288(struct pci_dev *dev) -{
> -	unsigned char c;
> -
> -	pci_read_config_byte(dev,0x83,&c);
> -	c |= 0x80;
> -	pci_write_config_byte(dev, 0x83, c);
> -
> -	pci_write_config_byte(dev, 0x09, 0x01);
> -	pci_write_config_byte(dev, 0x0a, 0x06);
> -
> -	pci_read_config_byte(dev,0x83,&c);
> -	c &= 0x7f;
> -	pci_write_config_byte(dev, 0x83, c);
> -
> -	pci_read_config_byte(dev,0x84,&c);
> -	c |= 0x01;
> -	pci_write_config_byte(dev, 0x84, c);
> -}
> -
> -static void __devinit quirk_uli5229(struct pci_dev *dev) -{
> -	unsigned short temp;
> -	pci_write_config_word(dev, 0x04, 0x0405);
> -	pci_read_config_word(dev, 0x4a, &temp);
> -	temp |= 0x1000;
> -	pci_write_config_word(dev, 0x4a, temp);
> -}
> -
> -static void __devinit early_uli5249(struct pci_dev *dev) -{
> -	unsigned char temp;
> -	pci_write_config_word(dev, 0x04, 0x0007);
> -	pci_read_config_byte(dev, 0x7c, &temp);
> -	pci_write_config_byte(dev, 0x7c, 0x80);
> -	pci_write_config_byte(dev, 0x09, 0x01);
> -	pci_write_config_byte(dev, 0x7c, temp);
> -	dev->class |= 0x1;
> -}
> -
> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x1575, 
> quirk_ali1575); -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 
> 0x5288, quirk_uli5288); 
> -DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AL, 0x5229, 
> quirk_uli5229); -DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_AL, 
> 0x5249, early_uli5249); diff --git 
> a/include/asm-powerpc/mpc86xx.h 
> b/include/asm-powerpc/mpc86xx.h index d0a6718..00d72a7 100644
> --- a/include/asm-powerpc/mpc86xx.h
> +++ b/include/asm-powerpc/mpc86xx.h
> @@ -20,10 +20,6 @@ #include <asm/mmu.h>
>  
>  #ifdef CONFIG_PPC_86xx
>  
> -#ifdef CONFIG_MPC8641_HPCN
> -#include <platforms/86xx/mpc8641_hpcn.h> -#endif
> -
>  #define _IO_BASE        isa_io_base
>  #define _ISA_MEM_BASE   isa_mem_base
>  #ifdef CONFIG_PCI
> 
> _______________________________________________
> Linuxppc-dev mailing list
> [email protected]
> https://ozlabs.org/mailman/listinfo/linuxppc-dev
> 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux