1234567891011121314151617181920212223242526272829303132333435363738394041 |
- --- a/arch/mips/include/asm/mach-ath79/ath79.h
- +++ b/arch/mips/include/asm/mach-ath79/ath79.h
- @@ -144,5 +144,6 @@ 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);
-
- #endif /* __ASM_MACH_ATH79_H */
- --- a/arch/mips/ath79/common.c
- +++ b/arch/mips/ath79/common.c
- @@ -142,3 +142,29 @@ void ath79_device_reset_clear(u32 mask)
- spin_unlock_irqrestore(&ath79_device_reset_lock, flags);
- }
- 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);
|