From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mathieu Slabbinck Date: Wed, 7 Sep 2016 22:07:47 +0200 Subject: [ath9k-devel] TX99 unreliable start sequence Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: ath9k-devel@lists.ath9k.org Hi, I was looking into the TX99 module recently and found that it was not always starting properly. If for example echo 1 > tx99 is done, the wireless module would not start transmitting in all attempts. Even though a cat of tx99 is responding with 1. Do the same command again (without modifying anything else) and the odds increase of the module starting to transmit... Since this was something annoying, I was investigating the write_file_tx99 function which seems to be the cause of the improper handling. I've created the patch below and it responds much more reliable. Each request is properly sending out RF waves. --- a/drivers/net/wireless/ath/ath9k/tx99.c +++ b/drivers/net/wireless/ath/ath9k/tx99.c @@ -191,23 +191,14 @@ static ssize_t write_file_tx99(struct file *file, const char __user *user_buf, if (strtobool(buf, &start)) return -EINVAL; - if (start == sc->tx99_state) { - if (!start) - return count; - ath_dbg(common, XMIT, "Resetting TX99\n"); - ath9k_tx99_deinit(sc); - } - - if (!start) { - ath9k_tx99_deinit(sc); - return count; - } - - r = ath9k_tx99_init(sc); - if (r) - return r; - - return count; + if (start) { + ath9k_tx99_deinit(sc); + r = ath9k_tx99_init(sc); + } + else { + ath9k_tx99_deinit(sc); + } + return count; } I'm now just wondering if anyone knows why this piece of code was made this way the first place, as I'm sure it had a purpose... Kr Mathieu -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20160907/570e8528/attachment.htm