/* * Memory-mapped device register read/write. These are here * as routines when debugging support is enabled and/or when * explicitly configured to use function calls. The latter is * for architectures that might need to do something before * referencing memory (e.g. remap an i/o window). * * NB: see the comments in ah_osdep.h about byte-swapping register * reads and writes to understand what's going on below. */ void __ahdecl ath_hal_reg_write(struct ath_hal *ah, u_int reg, u_int32_t val) { #ifdef AH_DEBUG if (ath_hal_debug > 1) ath_hal_printf(ah, "WRITE 0x%x <= 0x%x\n", reg, val); #endif _OS_REG_WRITE(ah, reg, val); }
void __ahdecl ath_hal_reg_write(struct ath_hal *ah, u_int reg, u_int32_t val) { HDPRINTF(ah, HAL_DBG_REG_IO, "WRITE 0x%x <= 0x%x\n", reg, val); #if defined(AH_ANALOG_SHADOW_READ) if (reg<=RF_END && reg>=RF_BEGIN) rfshadow[(reg-RF_BEGIN)/4] = val; #endif #if defined(AH_ANALOG_SHADOW_WRITE) if (reg<=RF_END && reg>=RF_BEGIN) return; #endif _OS_REG_WRITE(ah, reg, val); }
void __ahdecl ath_hal_reg_write(struct ath_hal *ah, u_int32_t reg, u_int32_t val) { if (ath_hal_alq) { unsigned long flags; struct ale *ale; local_irq_save(flags); ale = ath_hal_alq_get(ah); if (ale) { struct athregrec *r = (struct athregrec *) ale->ae_data; r->op = OP_WRITE; r->reg = reg; r->val = val; alq_post(ath_hal_alq, ale); } local_irq_restore(flags); } _OS_REG_WRITE(ah, reg, val); }