linux/arch/powerpc/platforms/iseries/pci.h
<<
>>
Prefs
   1#ifndef _PLATFORMS_ISERIES_PCI_H
   2#define _PLATFORMS_ISERIES_PCI_H
   3
   4/*
   5 * Created by Allan Trautman on Tue Feb 20, 2001.
   6 *
   7 * Define some useful macros for the iSeries pci routines.
   8 * Copyright (C) 2001  Allan H Trautman, IBM Corporation
   9 *
  10 * This program is free software; you can redistribute it and/or modify
  11 * it under the terms of the GNU General Public License as published by
  12 * the Free Software Foundation; either version 2 of the License, or
  13 * (at your option) any later version.
  14 *
  15 * This program is distributed in the hope that it will be useful,
  16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  18 * GNU General Public License for more details.
  19 *
  20 * You should have received a copy of the GNU General Public License
  21 * along with this program; if not, write to the:
  22 * Free Software Foundation, Inc.,
  23 * 59 Temple Place, Suite 330,
  24 * Boston, MA  02111-1307  USA
  25 *
  26 * Change Activity:
  27 *   Created Feb 20, 2001
  28 *   Added device reset, March 22, 2001
  29 *   Ported to ppc64, May 25, 2001
  30 * End Change Activity
  31 */
  32
  33/*
  34 * Decodes Linux DevFn to iSeries DevFn, bridge device, or function.
  35 * For Linux, see PCI_SLOT and PCI_FUNC in include/linux/pci.h
  36 */
  37
  38#define ISERIES_PCI_AGENTID(idsel, func)        \
  39        (((idsel & 0x0F) << 4) | (func & 0x07))
  40#define ISERIES_ENCODE_DEVICE(agentid)          \
  41        ((0x10) | ((agentid & 0x20) >> 2) | (agentid & 0x07))
  42
  43#define ISERIES_GET_DEVICE_FROM_SUBBUS(subbus)          ((subbus >> 5) & 0x7)
  44#define ISERIES_GET_FUNCTION_FROM_SUBBUS(subbus)        ((subbus >> 2) & 0x7)
  45
  46struct pci_dev;
  47
  48#ifdef CONFIG_PCI
  49extern void     iSeries_pcibios_init(void);
  50extern void     iSeries_pci_final_fixup(void);
  51extern void     iSeries_pcibios_fixup_resources(struct pci_dev *dev);
  52#else
  53static inline void      iSeries_pcibios_init(void) { }
  54static inline void      iSeries_pci_final_fixup(void) { }
  55static inline void      iSeries_pcibios_fixup_resources(struct pci_dev *dev) {}
  56#endif
  57
  58#endif /* _PLATFORMS_ISERIES_PCI_H */
  59