123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- --- a/arch/mips/include/asm/mach-ath79/ath79.h
- +++ b/arch/mips/include/asm/mach-ath79/ath79.h
- @@ -144,6 +144,7 @@ static inline u32 ath79_reset_rr(unsigne
-
- void ath79_device_reset_set(u32 mask);
- void ath79_device_reset_clear(u32 mask);
- +u32 ath79_device_reset_get(u32 mask);
-
- void ath79_flash_acquire(void);
- void ath79_flash_release(void);
- --- a/arch/mips/ath79/common.c
- +++ b/arch/mips/ath79/common.c
- @@ -144,6 +144,32 @@ void ath79_device_reset_clear(u32 mask)
- }
- EXPORT_SYMBOL_GPL(ath79_device_reset_clear);
-
- +u32 ath79_device_reset_get(u32 mask)
- +{
- + unsigned long flags;
- + u32 reg;
- + u32 ret;
- +
- + if (soc_is_ar71xx())
- + reg = AR71XX_RESET_REG_RESET_MODULE;
- + else if (soc_is_ar724x())
- + reg = AR724X_RESET_REG_RESET_MODULE;
- + else if (soc_is_ar913x())
- + reg = AR913X_RESET_REG_RESET_MODULE;
- + else if (soc_is_ar933x())
- + reg = AR933X_RESET_REG_RESET_MODULE;
- + else if (soc_is_ar934x())
- + reg = AR934X_RESET_REG_RESET_MODULE;
- + else
- + BUG();
- +
- + spin_lock_irqsave(&ath79_device_reset_lock, flags);
- + ret = ath79_reset_rr(reg);
- + spin_unlock_irqrestore(&ath79_device_reset_lock, flags);
- + return ret;
- +}
- +EXPORT_SYMBOL_GPL(ath79_device_reset_get);
- +
- void ath79_flash_acquire(void)
- {
- mutex_lock(&ath79_flash_mutex);
|