diff options
author | Michael Buesch <mb@bu3sch.de> | 2008-03-10 12:26:32 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2008-03-13 19:32:32 -0400 |
commit | e7ec2e3230633a858af1b0b359f6c4670dbeb997 (patch) | |
tree | c43dbd7f6cab0ac066c039697528312d802617ef /drivers/ssb/ssb_private.h | |
parent | 068edceb7e73c05f77e204442ea8f86e238575da (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.h | 17 |
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); |
82 | extern int ssb_pcmcia_get_invariants(struct ssb_bus *bus, | 82 | extern int ssb_pcmcia_get_invariants(struct ssb_bus *bus, |
83 | struct ssb_init_invariants *iv); | 83 | struct ssb_init_invariants *iv); |
84 | extern void ssb_pcmcia_exit(struct ssb_bus *bus); | ||
84 | extern int ssb_pcmcia_init(struct ssb_bus *bus); | 85 | extern int ssb_pcmcia_init(struct ssb_bus *bus); |
85 | extern const struct ssb_bus_ops ssb_pcmcia_ops; | 86 | extern 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 | } |
103 | static inline void ssb_pcmcia_exit(struct ssb_bus *bus) | ||
104 | { | ||
105 | } | ||
102 | static inline int ssb_pcmcia_init(struct ssb_bus *bus) | 106 | static 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, | |||
113 | extern void ssb_iounmap(struct ssb_bus *ssb); | 117 | extern void ssb_iounmap(struct ssb_bus *ssb); |
114 | 118 | ||
115 | 119 | ||
120 | /* sprom.c */ | ||
121 | extern | ||
122 | ssize_t ssb_attr_sprom_show(struct ssb_bus *bus, char *buf, | ||
123 | int (*sprom_read)(struct ssb_bus *bus, u16 *sprom)); | ||
124 | extern | ||
125 | ssize_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 */ |
117 | extern u32 ssb_calc_clock_rate(u32 plltype, u32 n, u32 m); | 132 | extern u32 ssb_calc_clock_rate(u32 plltype, u32 n, u32 m); |
118 | extern int ssb_devices_freeze(struct ssb_bus *bus); | 133 | extern int ssb_devices_freeze(struct ssb_bus *bus); |
@@ -120,6 +135,8 @@ extern int ssb_devices_thaw(struct ssb_bus *bus); | |||
120 | extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev); | 135 | extern struct ssb_bus *ssb_pci_dev_to_bus(struct pci_dev *pdev); |
121 | int ssb_for_each_bus_call(unsigned long data, | 136 | int 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)); |
138 | extern 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 |