mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2024-12-18 13:01:55 +02:00
e0b80e41eb
Tested on the following boards: ALFA AP96 TL-MR3220 v1 TL-WR1043ND v1 TL-WR2543ND v1 TL-WR703N v1 TL-WR741ND v1 TL-WR741ND v4 WNDR3700 v1 WZR-HP-G300NH git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29868 3c298f89-4303-0410-b956-a3cf2f4a3e73
46 lines
1.2 KiB
Diff
46 lines
1.2 KiB
Diff
--- a/arch/mips/include/asm/mach-ath79/ath79.h
|
|
+++ b/arch/mips/include/asm/mach-ath79/ath79.h
|
|
@@ -125,6 +125,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
|
|
@@ -109,6 +109,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);
|