cregit-Linux how code gets into the kernel

Release 4.14 arch/powerpc/sysdev/grackle.c

/*
 * Functions for setting up and using a MPC106 northbridge
 * Extracted from arch/powerpc/platforms/powermac/pci.c.
 *
 * Copyright (C) 2003 Benjamin Herrenschmuidt (benh@kernel.crashing.org)
 * Copyright (C) 1997 Paul Mackerras (paulus@samba.org)
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version
 * 2 of the License, or (at your option) any later version.
 */
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/init.h>

#include <asm/io.h>
#include <asm/prom.h>
#include <asm/pci-bridge.h>
#include <asm/grackle.h>


#define GRACKLE_CFA(b, d, o)	(0x80 | ((b) << 8) | ((d) << 16) \
                                 | (((o) & ~3) << 24))


#define GRACKLE_PICR1_STG		0x00000040

#define GRACKLE_PICR1_LOOPSNOOP		0x00000010

/* N.B. this is called before bridges is initialized, so we can't
   use grackle_pcibios_{read,write}_config_dword. */

static inline void grackle_set_stg(struct pci_controller* bp, int enable) { unsigned int val; out_be32(bp->cfg_addr, GRACKLE_CFA(0, 0, 0xa8)); val = in_le32(bp->cfg_data); val = enable? (val | GRACKLE_PICR1_STG) : (val & ~GRACKLE_PICR1_STG); out_be32(bp->cfg_addr, GRACKLE_CFA(0, 0, 0xa8)); out_le32(bp->cfg_data, val); (void)in_le32(bp->cfg_data); }

Contributors

PersonTokensPropCommitsCommitProp
Paul Mackerras96100.00%1100.00%
Total96100.00%1100.00%


static inline void grackle_set_loop_snoop(struct pci_controller *bp, int enable) { unsigned int val; out_be32(bp->cfg_addr, GRACKLE_CFA(0, 0, 0xa8)); val = in_le32(bp->cfg_data); val = enable? (val | GRACKLE_PICR1_LOOPSNOOP) : (val & ~GRACKLE_PICR1_LOOPSNOOP); out_be32(bp->cfg_addr, GRACKLE_CFA(0, 0, 0xa8)); out_le32(bp->cfg_data, val); (void)in_le32(bp->cfg_data); }

Contributors

PersonTokensPropCommitsCommitProp
Paul Mackerras96100.00%1100.00%
Total96100.00%1100.00%


void __init setup_grackle(struct pci_controller *hose) { setup_indirect_pci(hose, 0xfec00000, 0xfee00000, 0); if (of_machine_is_compatible("PowerMac1,1")) pci_add_flags(PCI_REASSIGN_ALL_BUS); if (of_machine_is_compatible("AAPL,PowerBook1998")) grackle_set_loop_snoop(hose, 1); #if 0 /* Disabled for now, HW problems ??? */ grackle_set_stg(hose, 1); #endif }

Contributors

PersonTokensPropCommitsCommitProp
Paul Mackerras4072.73%116.67%
Pavel Roskin712.73%116.67%
Grant C. Likely23.64%116.67%
Rob Herring23.64%116.67%
Kumar Gala23.64%116.67%
Josh Boyer23.64%116.67%
Total55100.00%6100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
Paul Mackerras27494.81%116.67%
Pavel Roskin72.42%116.67%
Kumar Gala20.69%116.67%
Rob Herring20.69%116.67%
Grant C. Likely20.69%116.67%
Josh Boyer20.69%116.67%
Total289100.00%6100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.