aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2012-11-26 18:31:55 -0500
committerJohn W. Linville <linville@tuxdriver.com>2012-11-30 13:38:14 -0500
commit0362063b7be97f6f8e2c644b970f5726489aacdf (patch)
tree11230e5afa3c4c74499a5dfa895a419a22b57ea4
parent4a7267c9a03b9627e5e85c80b307eb4541bab902 (diff)
ssb: extif: fix compile errors
If CONFIG_SSB_EMBEDDED or CONFIG_SSB_DRIVER_MIPS is set and CONFIG_SSB_DRIVER_EXTIF is not set, it will cause compile problems because of missing functions. This patch fixes these problems. The mips driver now also uses ssb_chipco_available() instead of checking bus->chipco.dev manually. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/ssb/driver_mipscore.c14
-rw-r--r--include/linux/ssb/ssb_driver_extif.h42
2 files changed, 49 insertions, 7 deletions
diff --git a/drivers/ssb/driver_mipscore.c b/drivers/ssb/driver_mipscore.c
index b918ba922306..5bd05b136d22 100644
--- a/drivers/ssb/driver_mipscore.c
+++ b/drivers/ssb/driver_mipscore.c
@@ -178,9 +178,9 @@ static void ssb_mips_serial_init(struct ssb_mipscore *mcore)
178{ 178{
179 struct ssb_bus *bus = mcore->dev->bus; 179 struct ssb_bus *bus = mcore->dev->bus;
180 180
181 if (bus->extif.dev) 181 if (ssb_extif_available(&bus->extif))
182 mcore->nr_serial_ports = ssb_extif_serial_init(&bus->extif, mcore->serial_ports); 182 mcore->nr_serial_ports = ssb_extif_serial_init(&bus->extif, mcore->serial_ports);
183 else if (bus->chipco.dev) 183 else if (ssb_chipco_available(&bus->chipco))
184 mcore->nr_serial_ports = ssb_chipco_serial_init(&bus->chipco, mcore->serial_ports); 184 mcore->nr_serial_ports = ssb_chipco_serial_init(&bus->chipco, mcore->serial_ports);
185 else 185 else
186 mcore->nr_serial_ports = 0; 186 mcore->nr_serial_ports = 0;
@@ -191,7 +191,7 @@ static void ssb_mips_flash_detect(struct ssb_mipscore *mcore)
191 struct ssb_bus *bus = mcore->dev->bus; 191 struct ssb_bus *bus = mcore->dev->bus;
192 192
193 /* When there is no chipcommon on the bus there is 4MB flash */ 193 /* When there is no chipcommon on the bus there is 4MB flash */
194 if (!bus->chipco.dev) { 194 if (!ssb_chipco_available(&bus->chipco)) {
195 mcore->pflash.present = true; 195 mcore->pflash.present = true;
196 mcore->pflash.buswidth = 2; 196 mcore->pflash.buswidth = 2;
197 mcore->pflash.window = SSB_FLASH1; 197 mcore->pflash.window = SSB_FLASH1;
@@ -227,9 +227,9 @@ u32 ssb_cpu_clock(struct ssb_mipscore *mcore)
227 if (bus->chipco.capabilities & SSB_CHIPCO_CAP_PMU) 227 if (bus->chipco.capabilities & SSB_CHIPCO_CAP_PMU)
228 return ssb_pmu_get_cpu_clock(&bus->chipco); 228 return ssb_pmu_get_cpu_clock(&bus->chipco);
229 229
230 if (bus->extif.dev) { 230 if (ssb_extif_available(&bus->extif)) {
231 ssb_extif_get_clockcontrol(&bus->extif, &pll_type, &n, &m); 231 ssb_extif_get_clockcontrol(&bus->extif, &pll_type, &n, &m);
232 } else if (bus->chipco.dev) { 232 } else if (ssb_chipco_available(&bus->chipco)) {
233 ssb_chipco_get_clockcpu(&bus->chipco, &pll_type, &n, &m); 233 ssb_chipco_get_clockcpu(&bus->chipco, &pll_type, &n, &m);
234 } else 234 } else
235 return 0; 235 return 0;
@@ -265,9 +265,9 @@ void ssb_mipscore_init(struct ssb_mipscore *mcore)
265 hz = 100000000; 265 hz = 100000000;
266 ns = 1000000000 / hz; 266 ns = 1000000000 / hz;
267 267
268 if (bus->extif.dev) 268 if (ssb_extif_available(&bus->extif))
269 ssb_extif_timing_init(&bus->extif, ns); 269 ssb_extif_timing_init(&bus->extif, ns);
270 else if (bus->chipco.dev) 270 else if (ssb_chipco_available(&bus->chipco))
271 ssb_chipco_timing_init(&bus->chipco, ns); 271 ssb_chipco_timing_init(&bus->chipco, ns);
272 272
273 /* Assign IRQs to all cores on the bus, start with irq line 2, because serial usually takes 1 */ 273 /* Assign IRQs to all cores on the bus, start with irq line 2, because serial usually takes 1 */
diff --git a/include/linux/ssb/ssb_driver_extif.h b/include/linux/ssb/ssb_driver_extif.h
index 91161f0aa22b..2604efa7dc4d 100644
--- a/include/linux/ssb/ssb_driver_extif.h
+++ b/include/linux/ssb/ssb_driver_extif.h
@@ -205,10 +205,52 @@ void ssb_extif_get_clockcontrol(struct ssb_extif *extif,
205} 205}
206 206
207static inline 207static inline
208void ssb_extif_timing_init(struct ssb_extif *extif, unsigned long ns)
209{
210}
211
212static inline
208void ssb_extif_watchdog_timer_set(struct ssb_extif *extif, 213void ssb_extif_watchdog_timer_set(struct ssb_extif *extif,
209 u32 ticks) 214 u32 ticks)
210{ 215{
211} 216}
212 217
218static inline u32 ssb_extif_gpio_in(struct ssb_extif *extif, u32 mask)
219{
220 return 0;
221}
222
223static inline u32 ssb_extif_gpio_out(struct ssb_extif *extif, u32 mask,
224 u32 value)
225{
226 return 0;
227}
228
229static inline u32 ssb_extif_gpio_outen(struct ssb_extif *extif, u32 mask,
230 u32 value)
231{
232 return 0;
233}
234
235static inline u32 ssb_extif_gpio_polarity(struct ssb_extif *extif, u32 mask,
236 u32 value)
237{
238 return 0;
239}
240
241static inline u32 ssb_extif_gpio_intmask(struct ssb_extif *extif, u32 mask,
242 u32 value)
243{
244 return 0;
245}
246
247#ifdef CONFIG_SSB_SERIAL
248static inline int ssb_extif_serial_init(struct ssb_extif *extif,
249 struct ssb_serial_port *ports)
250{
251 return 0;
252}
253#endif /* CONFIG_SSB_SERIAL */
254
213#endif /* CONFIG_SSB_DRIVER_EXTIF */ 255#endif /* CONFIG_SSB_DRIVER_EXTIF */
214#endif /* LINUX_SSB_EXTIFCORE_H_ */ 256#endif /* LINUX_SSB_EXTIFCORE_H_ */