Change Details
atusb/fw/mac.c |
106 | 106 | } |
107 | 107 | |
108 | 108 | |
| 109 | static void change_state(uint8_t new) |
| 110 | { |
| 111 | while ((reg_read(REG_TRX_STATUS) & TRX_STATUS_MASK) == |
| 112 | TRX_STATUS_TRANSITION); |
| 113 | reg_write(REG_TRX_STATE, new); |
| 114 | } |
| 115 | |
| 116 | |
109 | 117 | int mac_rx(int on) |
110 | 118 | { |
111 | 119 | if (on) { |
112 | 120 | mac_irq = handle_irq; |
113 | 121 | reg_read(REG_IRQ_STATUS); |
114 | | reg_write(REG_TRX_STATE, TRX_CMD_RX_ON); |
| 122 | change_state(TRX_CMD_RX_ON); |
115 | 123 | } else { |
116 | 124 | mac_irq = NULL; |
117 | | reg_write(REG_TRX_STATE, TRX_CMD_FORCE_TRX_OFF); |
| 125 | change_state(TRX_CMD_FORCE_TRX_OFF); |
118 | 126 | txing = 0; |
119 | 127 | } |
120 | 128 | return 1; |
... | ... | |
153 | 161 | * Wait until we reach BUSY_TX, so that we command the transition to |
154 | 162 | * RX_ON which will be executed upon TX completion. |
155 | 163 | */ |
156 | | while ((reg_read(REG_TRX_STATUS) & TRX_STATUS_MASK) == |
157 | | TRX_STATUS_TRANSITION); |
158 | | reg_write(REG_TRX_STATE, TRX_CMD_RX_ON); |
| 164 | change_state(TRX_CMD_RX_ON); |
159 | 165 | } |
160 | 166 | |
161 | 167 | |
Download the corresponding diff file