Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 #ifndef LINUX_SSB_PRIVATE_H_
  2 #define LINUX_SSB_PRIVATE_H_
  3 
  4 #include <linux/ssb/ssb.h>
  5 #include <linux/types.h>
  6 
  7 
  8 #define PFX     "ssb: "
  9 
 10 #ifdef CONFIG_SSB_SILENT
 11 # define ssb_printk(fmt, x...)  do { /* nothing */ } while (0)
 12 #else
 13 # define ssb_printk             printk
 14 #endif /* CONFIG_SSB_SILENT */
 15 
 16 /* dprintk: Debugging printk; vanishes for non-debug compilation */
 17 #ifdef CONFIG_SSB_DEBUG
 18 # define ssb_dprintk(fmt, x...) ssb_printk(fmt , ##x)
 19 #else
 20 # define ssb_dprintk(fmt, x...) do { /* nothing */ } while (0)
 21 #endif
 22 
 23 #ifdef CONFIG_SSB_DEBUG
 24 # define SSB_WARN_ON(x)         WARN_ON(x)
 25 # define SSB_BUG_ON(x)          BUG_ON(x)
 26 #else
 27 static inline int __ssb_do_nothing(int x) { return x; }
 28 # define SSB_WARN_ON(x)         __ssb_do_nothing(unlikely(!!(x)))
 29 # define SSB_BUG_ON(x)          __ssb_do_nothing(unlikely(!!(x)))
 30 #endif
 31 
 32 
 33 /* pci.c */
 34 #ifdef CONFIG_SSB_PCIHOST
 35 extern int ssb_pci_switch_core(struct ssb_bus *bus,
 36                                struct ssb_device *dev);
 37 extern int ssb_pci_switch_coreidx(struct ssb_bus *bus,
 38                                   u8 coreidx);
 39 extern int ssb_pci_xtal(struct ssb_bus *bus, u32 what,
 40                         int turn_on);
 41 extern int ssb_pci_get_invariants(struct ssb_bus *bus,
 42                                   struct ssb_init_invariants *iv);
 43 extern void ssb_pci_exit(struct ssb_bus *bus);
 44 extern int ssb_pci_init(struct ssb_bus *bus);
 45 extern const struct ssb_bus_ops ssb_pci_ops;
 46 
 47 #else /* CONFIG_SSB_PCIHOST */
 48 
 49 static inline int ssb_pci_switch_core(struct ssb_bus *bus,
 50                                       struct ssb_device *dev)
 51 {
 52         return 0;
 53 }
 54 static inline int ssb_pci_switch_coreidx(struct ssb_bus *bus,
 55                                          u8 coreidx)
 56 {
 57         return 0;
 58 }
 59 static inline int ssb_pci_xtal(struct ssb_bus *bus, u32 what,
 60                                int turn_on)
 61 {
 62         return 0;
 63 }
 64 static inline void ssb_pci_exit(struct ssb_bus *bus)
 65 {
 66 }
 67 static inline int ssb_pci_init(struct ssb_bus *bus)
 68 {
 69         return 0;
 70 }
 71 #endif /* CONFIG_SSB_PCIHOST */
 72 
 73 
 74 /* pcmcia.c */
 75 #ifdef CONFIG_SSB_PCMCIAHOST
 76 extern int ssb_pcmcia_switch_core(struct ssb_bus *bus,
 77                                   struct ssb_device *dev);
 78 extern int ssb_pcmcia_switch_coreidx(struct ssb_bus *bus,
 79                                      u8 coreidx);
 80 extern int ssb_pcmcia_switch_segment(struct ssb_bus *bus,
 81                                      u8 seg);
 82 extern int ssb_pcmcia_get_invariants(struct ssb_bus *bus,
 83                                      struct ssb_init_invariants *iv);
 84 extern int ssb_pcmcia_hardware_setup(struct ssb_bus *bus);
 85 extern void ssb_pcmcia_exit(struct ssb_bus *bus);
 86 extern int ssb_pcmcia_init(struct ssb_bus *bus);
 87 extern const struct ssb_bus_ops ssb_pcmcia_ops;
 88 #else /* CONFIG_SSB_PCMCIAHOST */
 89 static inline int ssb_pcmcia_switch_core(struct ssb_bus *bus,
 90                                          struct ssb_device *dev)
 91 {
 92         return 0;
 93 }
 94 static inline int ssb_pcmcia_switch_coreidx(struct ssb_bus *bus,
 95                                             u8 coreidx)
 96 {
 97         return 0;
 98 }
 99 static inline int ssb_pcmcia_switch_segment(struct ssb_bus *bus,
100                                             u8 seg)
101 {
102         return 0;
103 }
104 static inline int ssb_pcmcia_hardware_setup(struct ssb_bus *bus)
105 {
106         return 0;
107 }
108 static inline void ssb_pcmcia_exit(struct ssb_bus *bus)
109 {
110 }
111 static inline int ssb_pcmcia_init(struct ssb_bus *bus)
112 {
113         return 0;
114 }
115 #endif /* CONFIG_SSB_PCMCIAHOST */
116 
117 
118 /* scan.c */
119 extern const char *ssb_core_name(u16 coreid);
120 extern int ssb_bus_scan(struct ssb_bus *bus,
121                         unsigned long baseaddr);
122 extern void ssb_iounmap(struct ssb_bus *ssb);
123 
124 
125 /* sprom.c */
126 extern
127 ssize_t ssb_attr_sprom_show(struct ssb_bus *bus, char *buf,
128                             int (*sprom_read)(struct ssb_bus *bus, u16 *sprom));
129 extern
130 ssize_t ssb_attr_sprom_store(struct ssb_bus *bus,
131                              const char *buf, size_t count,
132                              int (*sprom_check_crc)(const u16 *sprom, size_t size),
133                              int (*sprom_write)(struct ssb_bus *bus, const u16 *sprom));
134 extern const struct ssb_sprom *ssb_get_fallback_sprom(void);
135 
136 
137 /* core.c */
138 extern u32 ssb_calc_clock_rate(u32 plltype, u32 n, u32 m);
139 extern int ssb_devices_freeze(struct ssb_bus *bus);
140 extern int ssb_devices_thaw(struct ssb_bus *bus);
141 extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev);
142 int ssb_for_each_bus_call(unsigned long data,
143                           int (*func)(struct ssb_bus *bus, unsigned long data));
144 extern struct ssb_bus *ssb_pcmcia_dev_to_bus(struct pcmcia_device *pdev);
145 
146 
147 /* b43_pci_bridge.c */
148 #ifdef CONFIG_SSB_B43_PCI_BRIDGE
149 extern int __init b43_pci_ssb_bridge_init(void);
150 extern void __exit b43_pci_ssb_bridge_exit(void);
151 #else /* CONFIG_SSB_B43_PCI_BRIDGR */
152 static inline int b43_pci_ssb_bridge_init(void)
153 {
154         return 0;
155 }
156 static inline void b43_pci_ssb_bridge_exit(void)
157 {
158 }
159 #endif /* CONFIG_SSB_PCIHOST */
160 
161 #endif /* LINUX_SSB_PRIVATE_H_ */
162 
  This page was automatically generated by the LXR engine.