~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/sparc/kernel/psycho_common.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0 */
  2 #ifndef _PSYCHO_COMMON_H
  3 #define _PSYCHO_COMMON_H
  4 
  5 /* U2P Programmer's Manual, page 13-55, configuration space
  6  * address format:
  7  * 
  8  *  32             24 23 16 15    11 10       8 7   2  1 0
  9  * ---------------------------------------------------------
 10  * |0 0 0 0 0 0 0 0 1| bus | device | function | reg | 0 0 |
 11  * ---------------------------------------------------------
 12  */
 13 #define PSYCHO_CONFIG_BASE(PBM) \
 14         ((PBM)->config_space | (1UL << 24))
 15 #define PSYCHO_CONFIG_ENCODE(BUS, DEVFN, REG)   \
 16         (((unsigned long)(BUS)   << 16) |       \
 17          ((unsigned long)(DEVFN) << 8)  |       \
 18          ((unsigned long)(REG)))
 19 
 20 static inline void *psycho_pci_config_mkaddr(struct pci_pbm_info *pbm,
 21                                              unsigned char bus,
 22                                              unsigned int devfn,
 23                                              int where)
 24 {
 25         return (void *)
 26                 (PSYCHO_CONFIG_BASE(pbm) |
 27                  PSYCHO_CONFIG_ENCODE(bus, devfn, where));
 28 }
 29 
 30 enum psycho_error_type {
 31         UE_ERR, CE_ERR, PCI_ERR
 32 };
 33 
 34 void psycho_check_iommu_error(struct pci_pbm_info *pbm,
 35                               unsigned long afsr,
 36                               unsigned long afar,
 37                               enum psycho_error_type type);
 38 
 39 irqreturn_t psycho_pcierr_intr(int irq, void *dev_id);
 40 
 41 int psycho_iommu_init(struct pci_pbm_info *pbm, int tsbsize,
 42                       u32 dvma_offset, u32 dma_mask,
 43                       unsigned long write_complete_offset);
 44 
 45 void psycho_pbm_init_common(struct pci_pbm_info *pbm,
 46                             struct platform_device *op,
 47                             const char *chip_name, int chip_type);
 48 
 49 #endif /* _PSYCHO_COMMON_H */
 50 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php