Blame view

arch/sparc/kernel/psycho_common.h 1.42 KB
a21cff3e5   David S. Miller   sparc64: Start co...
1
2
  #ifndef _PSYCHO_COMMON_H
  #define _PSYCHO_COMMON_H
2e57572a5   David S. Miller   Merge branch 'mas...
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  /* U2P Programmer's Manual, page 13-55, configuration space
   * address format:
   * 
   *  32             24 23 16 15    11 10       8 7   2  1 0
   * ---------------------------------------------------------
   * |0 0 0 0 0 0 0 0 1| bus | device | function | reg | 0 0 |
   * ---------------------------------------------------------
   */
  #define PSYCHO_CONFIG_BASE(PBM)	\
  	((PBM)->config_space | (1UL << 24))
  #define PSYCHO_CONFIG_ENCODE(BUS, DEVFN, REG)	\
  	(((unsigned long)(BUS)   << 16) |	\
  	 ((unsigned long)(DEVFN) << 8)  |	\
  	 ((unsigned long)(REG)))
  
  static inline void *psycho_pci_config_mkaddr(struct pci_pbm_info *pbm,
  					     unsigned char bus,
  					     unsigned int devfn,
  					     int where)
  {
  	return (void *)
  		(PSYCHO_CONFIG_BASE(pbm) |
  		 PSYCHO_CONFIG_ENCODE(bus, devfn, where));
  }
e6e003720   David S. Miller   sparc64: Commoniz...
27
28
29
30
31
32
33
34
35
36
  enum psycho_error_type {
  	UE_ERR, CE_ERR, PCI_ERR
  };
  
  extern void psycho_check_iommu_error(struct pci_pbm_info *pbm,
  				     unsigned long afsr,
  				     unsigned long afar,
  				     enum psycho_error_type type);
  
  extern irqreturn_t psycho_pcierr_intr(int irq, void *dev_id);
a21cff3e5   David S. Miller   sparc64: Start co...
37
38
39
  extern int psycho_iommu_init(struct pci_pbm_info *pbm, int tsbsize,
  			     u32 dvma_offset, u32 dma_mask,
  			     unsigned long write_complete_offset);
1c03a55cd   David S. Miller   sparc64: Create a...
40
  extern void psycho_pbm_init_common(struct pci_pbm_info *pbm,
cd4cd7306   Grant Likely   sparc: remove ref...
41
  				   struct platform_device *op,
1c03a55cd   David S. Miller   sparc64: Create a...
42
  				   const char *chip_name, int chip_type);
a21cff3e5   David S. Miller   sparc64: Start co...
43
  #endif /* _PSYCHO_COMMON_H */