aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/bcma
diff options
context:
space:
mode:
authorHauke Mehrtens <hauke@hauke-m.de>2012-09-29 14:29:49 -0400
committerJohn W. Linville <linville@tuxdriver.com>2012-10-19 15:52:18 -0400
commit49655bb8a51565f0375a4f783334c9de78134be5 (patch)
tree2e1b63c9fa53e5e53190ff2d9d652dd057158846 /include/linux/bcma
parentb0a949b42ba7d6f1b2876045a5e062fdfe8c691f (diff)
bcma: just do the necessary things in early register on SoCs
Some parts of the initialization for chip common and the pcie core are accessing the sprom struct, but it is not initialized at that stage. Just do the necessary thing in the early register on SoCs and not the complete initialization to read out the nvram from the flash chip. After it is possible to read out the nvram, the sprom should be parsed from it and the full initialization of the cores should be run. Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'include/linux/bcma')
-rw-r--r--include/linux/bcma/bcma_driver_chipcommon.h3
-rw-r--r--include/linux/bcma/bcma_driver_mips.h3
2 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/bcma/bcma_driver_chipcommon.h b/include/linux/bcma/bcma_driver_chipcommon.h
index 1cf1749440a..fbde7cbd2d7 100644
--- a/include/linux/bcma/bcma_driver_chipcommon.h
+++ b/include/linux/bcma/bcma_driver_chipcommon.h
@@ -552,6 +552,7 @@ struct bcma_drv_cc {
552 u32 capabilities; 552 u32 capabilities;
553 u32 capabilities_ext; 553 u32 capabilities_ext;
554 u8 setup_done:1; 554 u8 setup_done:1;
555 u8 early_setup_done:1;
555 /* Fast Powerup Delay constant */ 556 /* Fast Powerup Delay constant */
556 u16 fast_pwrup_delay; 557 u16 fast_pwrup_delay;
557 struct bcma_chipcommon_pmu pmu; 558 struct bcma_chipcommon_pmu pmu;
@@ -583,6 +584,7 @@ struct bcma_drv_cc {
583 bcma_cc_write32(cc, offset, (bcma_cc_read32(cc, offset) & (mask)) | (set)) 584 bcma_cc_write32(cc, offset, (bcma_cc_read32(cc, offset) & (mask)) | (set))
584 585
585extern void bcma_core_chipcommon_init(struct bcma_drv_cc *cc); 586extern void bcma_core_chipcommon_init(struct bcma_drv_cc *cc);
587extern void bcma_core_chipcommon_early_init(struct bcma_drv_cc *cc);
586 588
587extern void bcma_chipco_suspend(struct bcma_drv_cc *cc); 589extern void bcma_chipco_suspend(struct bcma_drv_cc *cc);
588extern void bcma_chipco_resume(struct bcma_drv_cc *cc); 590extern void bcma_chipco_resume(struct bcma_drv_cc *cc);
@@ -606,6 +608,7 @@ u32 bcma_chipco_gpio_polarity(struct bcma_drv_cc *cc, u32 mask, u32 value);
606 608
607/* PMU support */ 609/* PMU support */
608extern void bcma_pmu_init(struct bcma_drv_cc *cc); 610extern void bcma_pmu_init(struct bcma_drv_cc *cc);
611extern void bcma_pmu_early_init(struct bcma_drv_cc *cc);
609 612
610extern void bcma_chipco_pll_write(struct bcma_drv_cc *cc, u32 offset, 613extern void bcma_chipco_pll_write(struct bcma_drv_cc *cc, u32 offset,
611 u32 value); 614 u32 value);
diff --git a/include/linux/bcma/bcma_driver_mips.h b/include/linux/bcma/bcma_driver_mips.h
index c0043645cdc..0baf8a56b79 100644
--- a/include/linux/bcma/bcma_driver_mips.h
+++ b/include/linux/bcma/bcma_driver_mips.h
@@ -35,13 +35,16 @@ struct bcma_device;
35struct bcma_drv_mips { 35struct bcma_drv_mips {
36 struct bcma_device *core; 36 struct bcma_device *core;
37 u8 setup_done:1; 37 u8 setup_done:1;
38 u8 early_setup_done:1;
38 unsigned int assigned_irqs; 39 unsigned int assigned_irqs;
39}; 40};
40 41
41#ifdef CONFIG_BCMA_DRIVER_MIPS 42#ifdef CONFIG_BCMA_DRIVER_MIPS
42extern void bcma_core_mips_init(struct bcma_drv_mips *mcore); 43extern void bcma_core_mips_init(struct bcma_drv_mips *mcore);
44extern void bcma_core_mips_early_init(struct bcma_drv_mips *mcore);
43#else 45#else
44static inline void bcma_core_mips_init(struct bcma_drv_mips *mcore) { } 46static inline void bcma_core_mips_init(struct bcma_drv_mips *mcore) { }
47static inline void bcma_core_mips_early_init(struct bcma_drv_mips *mcore) { }
45#endif 48#endif
46 49
47extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore); 50extern u32 bcma_cpu_clock(struct bcma_drv_mips *mcore);