cregit-Linux how code gets into the kernel

Release 4.11 arch/arm/include/asm/mach/pci.h

/*
 *  arch/arm/include/asm/mach/pci.h
 *
 *  Copyright (C) 2000 Russell King
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 */

#ifndef __ASM_MACH_PCI_H

#define __ASM_MACH_PCI_H

#include <linux/ioport.h>

struct pci_sys_data;
struct pci_ops;
struct pci_bus;
struct device;


struct hw_pci {
	
struct msi_controller *msi_ctrl;
	
struct pci_ops	*ops;
	
int		nr_controllers;
	
unsigned int	io_optional:1;
	
void		**private_data;
	
int		(*setup)(int nr, struct pci_sys_data *);
	
struct pci_bus *(*scan)(int nr, struct pci_sys_data *);
	
void		(*preinit)(void);
	
void		(*postinit)(void);
	
u8		(*swizzle)(struct pci_dev *dev, u8 *pin);
	
int		(*map_irq)(const struct pci_dev *dev, u8 slot, u8 pin);
	
resource_size_t (*align_resource)(struct pci_dev *dev,
					  const struct resource *res,
					  resource_size_t start,
					  resource_size_t size,
					  resource_size_t align);
};

/*
 * Per-controller structure
 */

struct pci_sys_data {
	
struct list_head node;
	
int		busnr;		/* primary bus number                   */
	
u64		mem_offset;	/* bus->cpu memory mapping offset       */
	
unsigned long	io_offset;	/* bus->cpu IO mapping offset           */
	
struct pci_bus	*bus;		/* PCI bus                              */
	
struct list_head resources;	/* root bus resources (apertures)       */
	
struct resource io_res;
	
char		io_res_name[12];
					/* Bridge swizzling                     */
	
u8		(*swizzle)(struct pci_dev *, u8 *);
					/* IRQ mapping                          */
	
int		(*map_irq)(const struct pci_dev *, u8, u8);
	
void		*private_data;	/* platform controller private data     */
};

/*
 * Call this with your hw_pci struct to initialise the PCI system.
 */
void pci_common_init_dev(struct device *, struct hw_pci *);

/*
 * Compatibility wrapper for older platforms that do not care about
 * passing the parent device.
 */

static inline void pci_common_init(struct hw_pci *hw) { pci_common_init_dev(NULL, hw); }

Contributors

PersonTokensPropCommitsCommitProp
Linus Walleij19100.00%1100.00%
Total19100.00%1100.00%

/* * Setup early fixed I/O mapping. */ #if defined(CONFIG_PCI) extern void pci_map_io_early(unsigned long pfn); #else
static inline void pci_map_io_early(unsigned long pfn) {}

Contributors

PersonTokensPropCommitsCommitProp
Rob Herring10100.00%1100.00%
Total10100.00%1100.00%

#endif /* * PCI controllers */ extern struct pci_ops iop3xx_ops; extern int iop3xx_pci_setup(int nr, struct pci_sys_data *); extern void iop3xx_pci_preinit(void); extern void iop3xx_pci_preinit_cond(void); extern struct pci_ops dc21285_ops; extern int dc21285_setup(int nr, struct pci_sys_data *); extern void dc21285_preinit(void); extern void dc21285_postinit(void); #endif /* __ASM_MACH_PCI_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
Linus Torvalds13636.66%28.70%
Russell King6517.52%417.39%
Rob Herring4311.59%28.70%
Linus Walleij287.55%14.35%
Thomas Petazzoni277.28%14.35%
Lennert Buytenhek195.12%14.35%
Linus Torvalds (pre-git)102.70%313.04%
Björn Helgaas92.43%28.70%
Anton Vorontsov92.43%14.35%
Dan J Williams71.89%14.35%
Saeed Bishara51.35%14.35%
Yijing Wang51.35%14.35%
Thierry Reding51.35%14.35%
Ralf Bächle20.54%14.35%
Greg Kroah-Hartman10.27%14.35%
Total371100.00%23100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.