aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ssb/ssb_private.h
diff options
context:
space:
mode:
authorMichael Buesch <mb@bu3sch.de>2008-03-10 12:26:32 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-03-13 19:32:32 -0400
commite7ec2e3230633a858af1b0b359f6c4670dbeb997 (patch)
treec43dbd7f6cab0ac066c039697528312d802617ef /drivers/ssb/ssb_private.h
parent068edceb7e73c05f77e204442ea8f86e238575da (diff)
ssb: Add SPROM/invariants support for PCMCIA devices
This adds support for reading/writing the SPROM invariants for PCMCIA based devices. Signed-off-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/ssb/ssb_private.h')
-rw-r--r--drivers/ssb/ssb_private.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/ssb/ssb_private.h b/drivers/ssb/ssb_private.h
index d03b20983b1e..a83bf7a4d80b 100644
--- a/drivers/ssb/ssb_private.h
+++ b/drivers/ssb/ssb_private.h
@@ -81,6 +81,7 @@ extern int ssb_pcmcia_switch_segment(struct ssb_bus *bus,
81 u8 seg); 81 u8 seg);
82extern int ssb_pcmcia_get_invariants(struct ssb_bus *bus, 82extern int ssb_pcmcia_get_invariants(struct ssb_bus *bus,
83 struct ssb_init_invariants *iv); 83 struct ssb_init_invariants *iv);
84extern void ssb_pcmcia_exit(struct ssb_bus *bus);
84extern int ssb_pcmcia_init(struct ssb_bus *bus); 85extern int ssb_pcmcia_init(struct ssb_bus *bus);
85extern const struct ssb_bus_ops ssb_pcmcia_ops; 86extern const struct ssb_bus_ops ssb_pcmcia_ops;
86#else /* CONFIG_SSB_PCMCIAHOST */ 87#else /* CONFIG_SSB_PCMCIAHOST */
@@ -99,6 +100,9 @@ static inline int ssb_pcmcia_switch_segment(struct ssb_bus *bus,
99{ 100{
100 return 0; 101 return 0;
101} 102}
103static inline void ssb_pcmcia_exit(struct ssb_bus *bus)
104{
105}
102static inline int ssb_pcmcia_init(struct ssb_bus *bus) 106static inline int ssb_pcmcia_init(struct ssb_bus *bus)
103{ 107{
104 return 0; 108 return 0;
@@ -113,6 +117,17 @@ extern int ssb_bus_scan(struct ssb_bus *bus,
113extern void ssb_iounmap(struct ssb_bus *ssb); 117extern void ssb_iounmap(struct ssb_bus *ssb);
114 118
115 119
120/* sprom.c */
121extern
122ssize_t ssb_attr_sprom_show(struct ssb_bus *bus, char *buf,
123 int (*sprom_read)(struct ssb_bus *bus, u16 *sprom));
124extern
125ssize_t ssb_attr_sprom_store(struct ssb_bus *bus,
126 const char *buf, size_t count,
127 int (*sprom_check_crc)(const u16 *sprom, size_t size),
128 int (*sprom_write)(struct ssb_bus *bus, const u16 *sprom));
129
130
116/* core.c */ 131/* core.c */
117extern u32 ssb_calc_clock_rate(u32 plltype, u32 n, u32 m); 132extern u32 ssb_calc_clock_rate(u32 plltype, u32 n, u32 m);
118extern int ssb_devices_freeze(struct ssb_bus *bus); 133extern int ssb_devices_freeze(struct ssb_bus *bus);
@@ -120,6 +135,8 @@ extern int ssb_devices_thaw(struct ssb_bus *bus);
120extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev); 135extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev);
121int ssb_for_each_bus_call(unsigned long data, 136int ssb_for_each_bus_call(unsigned long data,
122 int (*func)(struct ssb_bus *bus, unsigned long data)); 137 int (*func)(struct ssb_bus *bus, unsigned long data));
138extern struct ssb_bus *ssb_pcmcia_dev_to_bus(struct pcmcia_device *pdev);
139
123 140
124/* b43_pci_bridge.c */ 141/* b43_pci_bridge.c */
125#ifdef CONFIG_SSB_B43_PCI_BRIDGE 142#ifdef CONFIG_SSB_B43_PCI_BRIDGE