--- a/arch/mips/ath79/common.c +++ b/arch/mips/ath79/common.c @@ -22,6 +22,7 @@ #include "common.h" static DEFINE_SPINLOCK(ath79_device_reset_lock); +static DEFINE_MUTEX(ath79_flash_mutex); u32 ath79_cpu_freq; EXPORT_SYMBOL_GPL(ath79_cpu_freq); @@ -111,3 +112,16 @@ void ath79_device_reset_clear(u32 mask) spin_unlock_irqrestore(&ath79_device_reset_lock, flags); } EXPORT_SYMBOL_GPL(ath79_device_reset_clear); + +void ath79_flash_acquire(void) +{ + mutex_lock(&ath79_flash_mutex); +} +EXPORT_SYMBOL_GPL(ath79_flash_acquire); + +void ath79_flash_release(void) +{ + mutex_unlock(&ath79_flash_mutex); +} +EXPORT_SYMBOL_GPL(ath79_flash_release); + --- a/arch/mips/include/asm/mach-ath79/ath79.h +++ b/arch/mips/include/asm/mach-ath79/ath79.h @@ -143,4 +143,7 @@ static inline u32 ath79_reset_rr(unsigne void ath79_device_reset_set(u32 mask); void ath79_device_reset_clear(u32 mask); +void ath79_flash_acquire(void); +void ath79_flash_release(void); + #endif /* __ASM_MACH_ATH79_H */